【发布时间】:2018-11-19 07:40:10
【问题描述】:
我在使用完整数据搜索字段时发现突出显示问题。我使用了自定义分析器,每个字段都存储为文本和关键字。
我使用空格作为搜索分析器。
我的自定义分析器是:
"analysis": {
"filter": {
"indexFilter": {
"type": "pattern_capture",
"preserve_original": "true",
"patterns": [
"([@,$,%,&,!,.,#,^,*]+)",
"([\\w,.]+)",
"([\\w,@]+)",
"([-]+)",
"(\\w+)"
]
}
},
"analyzer": {
"indexAnalyzer": {
"filter": [
"indexFilter",
"lowercase"
],
"tokenizer": "whitespace"
},
"searchAnalyzer": {
"filter": [
"lowercase"
],
"tokenizer": "whitespace"
}
}
我的映射文件是:
"field": {
"type": "text",
"term_vector": "with_positions_offsets",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
},
"analyzer": "indexAnalyzer",
"search_analyzer": "searchAnalyzer"
}
我的查询是:
{
"from": 0,
"size": 24,
"query": {
"bool": {
"should": [
{
"multi_match": {
"query": "monkey business",
"type": "phrase",
"slop": "2",
"fields": []
}
}
],
"minimum_should_match": 1
}
},
"highlight": {
"type": "unified",
"fields": {
"*": {}
}
}
}
我的高亮结果是:
"highlight": {
"field.keyword": [
"<em>monkey business</em>"
],
"field": [
"<em>monkey</em> <em>business</em>"
]
}
【问题讨论】:
-
好的,你期望实现什么?
-
我想知道当文本字段已经被点击时是否有办法忽略 .keyword 文件?在上述情况下,高亮存在冗余,因为同一字段被高亮两次。
标签: elasticsearch