Elasticsearch: Как использовать оператор - и / или для запросов фразы? - PullRequest
1 голос
/ 05 марта 2020

Допустим, у меня есть следующая строка запроса, которую вводит пользователь - "темно-синие туфли и моющиеся в воде"

В основном я хочу найти и "темно-синие туфли" и "моющиеся водой" в product_description ИЛИ product_title поле.

И то же самое относится и к "темно-синим туфлям или моющимся в воде", поэтому вместо оператора "и" используйте оператор "или".

Is можно предоставить несколько фраз Elasticsearch с оператором «и / или»

Я использую v7.1, если это имеет значение.

1 Ответ

0 голосов
/ 05 марта 2020

Вы можете использовать Query_string и передавать оператор в самом тексте

Данные:

{
        "_index" : "index72",
        "_type" : "_doc",
        "_id" : "p7_JqHABcSMy6UhGDmtS",
        "_score" : 1.0,
        "_source" : {
          "product_description" : "dark blue shoes water washable"
        }
},
{
        "_index" : "index72",
        "_type" : "_doc",
        "_id" : "qL_JqHABcSMy6UhGbWsn",
        "_score" : 1.0,
        "_source" : {
          "product_description" : "dark blue"
        }
}

Запрос:

{
    "query": {
        "query_string" : {
            "fields" : ["product_description", "product_title"],
            "query" : "dark blue shoes AND water washable"
        }
    }
}

Результат:

{
        "_index" : "index72",
        "_type" : "_doc",
        "_id" : "p7_JqHABcSMy6UhGDmtS",
        "_score" : 2.0794973,
        "_source" : {
          "product_description" : "dark blue shoes water washable"
        }
}
...