При поиске текста и запросе запроса результатов выделите, если в соответствующем поле документа содержится восклицательный знак, то возвращенный подсвеченный текст не содержит часть текста, которая содержит восклицательный знак
Elasticsearch версия 7.1. 1
документ: { "name" : "Yahoo! Inc [Please refer to Altaba Inc and Verizon Communications Inc]"}
поиск с выделением для подстановочного знака "in c"
ожидается: выделенный текст должен быть:
"Yahoo! <em>Inc</em> [Please refer to Altaba <em>Inc</em> and Verizon Communications <em>Inc</em>]"
актуально:"Yahoo!" отсутствует в ответе. Получил:
"<em>Inc</em> [Please refer to Altaba <em>Inc</em> and Verizon Communications <em>Inc</em>]"
Я думаю, это как-то связано с! отметка. Если я удаляю это, тогда все в порядке.
Шаги для воспроизведения:
Добавить документ в новый индекс
POST test/_doc/ { "name" : "Yahoo! Inc [Please refer to Altaba Inc and Verizon Communications Inc]" }
без других настроек / отображение
Выполнить запрос
GET test/_search { "query": { "bool": { "should": [ { "wildcard": { "name": { "wildcard": "inc*" } } } ] } }, "highlight": { "fields": { "name" : {} } } }
Получены следующие результаты:
"hits" : [ { "_index" : "test", "_type" : "_doc", "_id" : "511tP3ABoqekxkoUshVf", "_score" : 1.0, "_source" : { "name" : "Yahoo! Inc [Please refer to Altaba Inc and Verizon Communications Inc]" }, "highlight" : { "name" : [ "<em>Inc</em> [Please refer to Altaba <em>Inc</em> and Verizon Communications <em>Inc</em>]" ] } } ]
ожидаемое выделение:
"Yahoo! <em>Inc</em> [Please refer to Altaba <em>Inc</em> and Verizon Communications <em>Inc</em>]"