Поскольку вы не предоставили свое отображение и рассматриваете свой вопрос, в вашем отображении, похоже, поле Dest
определено как keyword
, которое не анализируется. следовательно, сохранение Verona Villafranca Airport
будет сохранено как есть.
Когда вы используете запрос совпадения , который анализируется, означает, что он использует тот же анализатор, который использовался для индексации поля, которое будет keyword
в этом случае, следовательно, поиск Verona Villafranca Airport
возвращает результат, так как этот токен присутствует в инвертированном индексе, тогда как поиск Verona
не будет совпадать ни с одним токеном, следовательно, вы не получите никакого результата.
Решение: если вам нужен поиск без учета регистра и вы хотите выполнить поиск по Verona
или airport
, то вам нужно определить это поле Dest
как text
, и Elasticsearch по умолчанию использует анализатор standard
, который автоматически строчными буквами и разделить текст на пустое место, что позволит включить вышеуказанные критерии поиска.
И позже вы можете использовать тот же самый запрос match
, который вы используете, и он будет работать, как описано в документации.
Обратите внимание на match
запрос от do c
Возвращает документы, которые соответствуют предоставленному тексту, номеру, дате или логическому значению. Предоставленный текст анализируется перед сопоставлением.
Токены, сгенерированные стандартным анализатором
POST /_analyze
{
"text" : "Verona Villafranca Airport",
"analyzer" : "standard"
}
{
"tokens": [
{
"token": "verona",
"start_offset": 0,
"end_offset": 6,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "villafranca",
"start_offset": 7,
"end_offset": 18,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "airport",
"start_offset": 19,
"end_offset": 26,
"type": "<ALPHANUM>",
"position": 2
}
]
}
Токены, сгенерированные по ключевому слову
POST /_analyze
{
"text" : "Verona Villafranca Airport",
"analyzer" : "keyword"
}
{
"tokens": [
{
"token": "Verona Villafranca Airport",
"start_offset": 0,
"end_offset": 26,
"type": "word",
"position": 0
}
]
}