ANDing поиск ключевых слов для эластичного поиска - PullRequest
0 голосов
/ 20 сентября 2018

Как мы можем настроить эластичный поиск так, чтобы он возвращал только те результаты, которые соответствуют всем словам в поисковом запросе.Индексированные документы имеют данные, имеющие несколько полей, и поэтому слова поискового запроса могут совпадать с различными полями данных, но все слова должны совпадать в результате?

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Я думаю, что вы ищете запрос multi_match вместе с оператором and.Это ссылка на документы: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html, и кажется, что cross_fields - это тип запроса, который вы ищете.Я бы прочитал больше на этой странице, но это, вероятно, то, что вы ищете:

GET /_search
{
  "query": {
    "multi_match" : {
      "query":      "Will Smith",
      "type":       "cross_fields",
      "fields":     [ "first_name", "last_name" ],
      "operator":   "and"
    }
  }
}
0 голосов
/ 20 сентября 2018

вы можете запрос строки запроса функция поиска результатов

образец поискового запроса

GET /_search
{
    "query": {
        "query_string": {
            "query": "(content:this OR name:this) AND (content:that OR name:that)"
        }
    }
}

В этом запросе содержимое и name - это имя поля, this - это критерий поиска

Вы можете создать поисковый запрос, подобный этому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...