Эластичный поиск Multimatch: есть ли способ поиска по всем полям, кроме одного? - PullRequest
1 голос
/ 10 июля 2019

У нас есть структура Elastic Search, которая задает поля в запросе multi_match, например:

"multi_match": {
                            "query": "find this string",
                            "fields": ["*_id^20", "*_name^20", "*"]
                        }

Это прекрасно работает - за исключением определенных обстоятельств, например, когда запрос равен "Find NOWAK".Это потому, что «СЕЙЧАС» является зарезервированным словом для поиска по дате, а поле "*" соответствует полям, которые определены как даты.

Так что я хотел бы сделать, это игнорировать поля, которые соответствуют "*_at".

Есть ли способ сказать Elastic Search, что он игнорирует определенные поля в запросе multi_match?

Если ответ на этот вопрос "нет", то последующий вопрос состоит в том, как избежать поискового запроса, чтобы онне будет вызывать ключевые слова

Рабочая версия 6.7

1 Ответ

0 голосов
/ 11 июля 2019

Попробуйте это:

Исключить поле в запросе Elasticsearch

curl -XGET 'localhost:9200/testidx/items/_search?pretty=true' -d '{
  "query" : {
     "query_string": {
          "fields": ["title", "field2", "field3"],      <-- add this
          "query": "Titulo"
     }},
     "_source" : {
          "exclude" : ["*.body"]
     }
}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...