Как использовать «query_string» для запроса документов и отфильтровать первый элемент поля списка - PullRequest
0 голосов
/ 24 октября 2019

В моем Elasticsearch у меня есть такой документ:

          "field_4" : [
            "ip_address",
            "127.0.0.1"
          ],
          "field_1" : 6522000300012,
          "field_2" : "asdfa",
          "field_26" : [
            "address",
            "HongKong"
          ]

, и мое тело:

body = {
            "query": {
                "bool": {
                    "must": [{"query_string": {"query": "*p*"}}]
                }
            }
        }

Теперь мой запрос может найти все поля со строкой "P",но для полей типа списка я не хочу запрашивать их первый элемент.

Я имею в виду, что вышеупомянутый документ не может быть запрошен, потому что строка "p" существует только в первом элементе типа списка filed_4.

Есть ли способ написать запрос для поиска без первого элемента списка в Elasticsearch? Спасибо!

1 Ответ

0 голосов
/ 24 октября 2019

Elasticsearch query_string поддерживает fields для запроса по определенным полям. Таким образом, вы можете указать только те поля, которые вы хотите запросить

body = {
            "query": {
                "bool": {
                    "must": [{"query_string": {"query": "*p*","fields":["field_1","field_2","field_26"]}}]
                }
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...