如何让弹性搜索仅突出显示导致文档返回的单词?
我有以下索引
{
"mappings": {
"document": {
"properties": {
"content": {
"type": "string",
"fields": {
"english": {
"type": "string",
"analyzer": "english"
}
}
}
}
}
}
}
假设我已编入索引:
核能是利用释放核的核反应 能量[5]产生热量,然后最常用于产生热量 蒸汽轮机在核电站发电。该 术语包括核裂变,核衰变和核聚变。 目前,act系列中的元素核裂变 周期表产生了绝大多数的核能 主要是以核衰变过程为人类提供直接服务 以地热能和放射性同位素热电的形式 发电机,利基用于弥补其余部分。
寻找“核元素”~2
我只想强调“元素的核裂变”或“元素的核裂变”的一部分,但现在每一次核的出现都会突显出来。
如果有帮助,这是我的查询:
{
"fields": [
],
"query": {
"query_string": {
"query": "\"nuclear elements\"~2",
"fields": [
"content.english"
]
}
},
"highlight": {
"pre_tags": [
"<em class='h'>"
],
"post_tags": [
"</em>"
],
"fragment_size": 500,
"number_of_fragments": 20,
"fields": {
"content.english": {}
}
}
}
答案 0 :(得分:2)
ES 2.1中有一个highlighting bug,这是由this change引起的。这已由Pull Request修复。
根据ES开发人员的说法
这是我在#13239中介绍的一个错误 差异是由于Lucene的变化:extractUnknownQuery也是 当跨度提取已经成功时调用,所以我们应该只是下降 如果尚未提取任何跨度,则返回Weight.extractTerms。
它适用于旧版本,直到2.0版本,并且将在未来版本中按预期工作。