Предупреждение, относящееся к query_string
, как указано в официальной документации
query_string query
возвращает ошибку для любого недопустимого синтаксиса, это не рекомендуется использовать запрос query_string
для окон поиска. Обратитесь к этому, чтобы узнать больше об этом.
Ниже приведены различные способы реализации поискового запроса для тех же данных (как указано в вопросе)
Поисковый запрос с использованием query_string
:
{
"query": {
"query_string" : {
"query" : "Hello AND NYC",
"fields": ["field1", "field2"]
}
}
}
Поисковый запрос с использованием simple_query_string
:
{
"query": {
"simple_query_string" : {
"query": "Hello NYC",
"fields": ["field1", "field2"],
"default_operator": "and"
}
}
}
Поисковый запрос с использованием multi_match
:
{
"query": {
"multi_match" : {
"query": "Hello NYC",
"type": "cross_fields",
"fields": [ "field1", "field2"],
"operator": "and"
}
}
}
Поисковый запрос с использованием bool query
:
{
"query": {
"bool": {
"should": [
{
"multi_match": {
"query": "Hello NYC",
"fields": ["field1","field2"],
"type": "cross_fields",
"operator": "AND"
}
}
]
}
}
}
Результат поиска:
"hits": [
{
"_index": "my-index",
"_type": "_doc",
"_id": "1",
"_score": 0.87546873,
"_source": {
"field1": "Hello Nik",
"field2": "NYC"
}
}
]
Обновление 1:
Поисковый запрос:
{
"query": {
"query_string": {
"query": "Hello AND NYC"
}
}
}