Я использую elasticsearch в моем проекте в Java, с форматом документа, какelasticsearch матч/термин запроса не возвращает точное соответствие
/index/type/_mapping
{
"my_id" : "string"
}
Теперь предположим, что значения my_id являются A01, A02, A01.A1, A012.AB0
для запроса
{
"query" : {
"term" : {
"my_id" : "a01"
}
}
}
Наблюдаемые: документы возвращаются для A01, A01.A1, A012.AB0
Ожидается: мне нужен только документ A01.
Я искал решение и обнаружил, что мне придется использовать собственный анализатор для поля my_id. Я не хочу менять свое сопоставление для документа. Кроме того, я использовал «индекс»: «not_analyzed» в запросе, но никаких изменений в выходе не было.
Вы уверены, что вы включили всю необходимую информацию по этому вопросу? Я полностью вписал то, что вы предоставили [в этой игре] (https://www.found.no/play/gist/7890789), и результаты - то, что вы ожидали. –
Кажется, я нашел причину, по которой мои документы были неправильными. . Для запроса A01 у меня есть документы для A01, A01.01, A01.A01 и т. Д., И когда я заменил '.' my_id с '_', я получил только A01. Это сработало для меня. –
Я думаю, что. работал как подстановочный знак, чтобы соответствовать всем, что приходит позже. Однако на нем ничего не найти. –