我有一个Elasticsearch索引,当对搜索应用突出显示时,它会从字段中删除字符。
例:
GET /myindex/_search
{
"query": {
"bool": {
"must": {
"multi_match": {
"query": "greene and associates",
"fuzziness" : "AUTO",
"fields": [
"name"
]
}
}
}
},
"highlight" : {
"fields" : {
"name" : {}
}
}
}
返回以下内容:
{
"_index" : "myindex",
...
"name" : "A. A. Greene & Associates",
...
},
"highlight" : {
"name" : [
"<em>Greene</em> & <em>Associates</em>"
]
}
}
我希望结果是
{
"_index" : "myindex",
...
"name" : "A. A. Greene & Associates",
...
},
"highlight" : {
"name" : [
"A. A. <em>Greene</em> & <em>Associates</em>"
]
}
}
我在此查询中有什么错?无论我尝试什么,都无法获得“AA”。返回最突出的结果。
我们正在运行v7.4,但我已搜索与此问题相关的其他人,但尚未找到任何东西。
这是为索引定义字段的方式:
"name" : {
"type" : "text",
"boost" : 3.0,
"fields" : {
"raw" : {
"type" : "keyword"
},
"suggest" : {
"type" : "completion",
"analyzer" : "simple",
"preserve_separators" : true,
"preserve_position_increments" : true,
"max_input_length" : 50
}
}
}
最佳答案
我发现了我所缺少的。默认的荧光笔是统一荧光笔,它将文本分成句子(名称中的句点是合格的)。
我将荧光笔类型更改为“普通”,并且可以正常工作。
新查询:
GET /myindex/_search
{
"query": {
"bool": {
"must": {
"multi_match": {
"query": "greene and associates",
"fuzziness" : "AUTO",
"fields": [
"name"
]
}
}
}
},
"highlight" : {
"fields" : {
"name" : {"type" : "plain"}
}
}
}
关于elasticsearch - Elasticsearch突出显示字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58438454/