我无法让ElasticSearch突出显示使用elasticsearch-mapper-attachments
索引的附件内容中的匹配。
我在/stuff/file
上的数据如下所示:
{
"id": "string"
"name": "string"
"attachment": "...base 64 encoded file"
}
我的映射器配置放入
/stuff/file/_mapper
看起来像这样:{
"file" : {
"properties" : {
"attachment" : {
"type" : "attachment",
"path" : "full",
"fields": {
"name": { "store": true },
"title": { "store": true },
"content": { "store": true },
"attachment": {
"type": "string",
"term_vector": "with_positions_offsets",
"store": true
}
}
}
}
}
}
当我在
/stuff/_mapper/file
上查询它时,得到此返回:{
"stuff":{
"mappings":{
"file":{
"properties":{
"attachment":{
"type":"attachment",
"path":"full",
"fields":{
"attachment":{
"type":"string"
},
"author":{
"type":"string"
},
"title":{
"type":"string"
},
"name":{
"type":"string"
},
"date":{
"type":"date",
"format":"dateOptionalTime"
},
"keywords":{
"type":"string"
},
"content_type":{
"type":"string"
},
"content_length":{
"type":"integer"
},
"language":{
"type":"string"
}
}
},
"id":{
"type":"string"
},
"name":{
"type":"string"
}
}
}
}
}
}
我的查询如下所示:
{
"size": 30,
"query": {
"multi_match": {
"query": "{{.Query}}",
"operator": "and",
"fields": ["id", "name^4", "attachment"],
"fuzziness": "AUTO",
"minimum_should_match": "80%"
}
},
"highlight" : {
"fields" : {
"attachment": { }
}
}
}
当我搜索附件中的术语时,它将返回正确的结果,但是没有突出显示。几年前,有一个类似的问题,在几个地方用
attachment
交换了file
,但是有评论说这又改变了……什么是正确的配置才能使突出显示起作用? 最佳答案
事实证明,您无法使用PUT
覆盖映射器配置。您需要先删除现有配置(我实际上已经删除了整个数据库,配置上的DELETE
似乎没有任何作用)。映射器配置实际更新后,突出显示即可正常工作。
关于elasticsearch - 使用ElasticSearch突出显示附件内容中的匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27348784/