Как упомянуто в комментарии, вы используете отображение по умолчанию, которое будет использовать стандартный анализатор по умолчанию, который удалит -
при индексации, следовательно, вы не получите при поиске *_*
.
анализируется запрос на совпадение , в котором используется тот же анализатор, который использовался во время индекса, поэтому он также удаляет -
для поисковых терминов, поэтому он дал результаты. Из того же самого выполните c запроса на совпадение:
Возвращает документы, которые соответствуют предоставленному тексту, номеру, дате или логическому значению. Предоставленный текст анализируется перед сопоставлением.
Решение : - используйте пользовательский анализатор , если вы также хотите найти _
, который использует ключевой токенайзер с нижним регистром, как я проверял, и Hindi анализатор также удаляет -
.
токены, сгенерированные с помощью Hindi анализатора
POST /article/_analyze --> noyte `-` removed
{
"analyzer" : "hindi",
"text" : "उत्तर-पूर्व"
}
{
"tokens": [
{
"token": "उततर",
"start_offset": 0,
"end_offset": 5,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "पुरव",
"start_offset": 6,
"end_offset": 11,
"type": "<ALPHANUM>",
"position": 1
}
]
}
Настраиваемый анализатор по умолчанию (нижнее ключевое слово)
{
"settings": {
"analysis": {
"analyzer": {
"lowercasekeyword": {
"type": "custom",
"tokenizer": "keyword",
"filter": [
"lowercase"
]
}
}
}
}
}
Жетоны, сгенерированные с помощью вышеуказанного настраиваемого анализатора
POST articles/_analyze
{
"analyzer" : "lowercasekeyword",
"text" : "उत्तर-पूर्व"
}
{
"tokens": [
{
"token": "उत्तर-पूर्व",
"start_offset": 0,
"end_offset": 11,
"type": "word",
"position": 0
}
]
}
Важное примечание: Вы должны создать другое поле, в которое включите этот анализатор lowercasekeyword
и использовать его для поиска по шаблону. Как упоминалось ранее, match
запросы анализируются и не будут работать в этом поле.