У меня есть индекс 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
}
}
}