Поисковый запрос эластичного поиска по всем полям, включая вложенные - PullRequest
0 голосов
/ 21 февраля 2019

Я использую ES версию 5.6.У меня есть документ, как показано ниже, в ES.

{
  "swType": "abc",
  "swVersion": "xyz",
  "interfaces": [
     {
        "autoneg": "enabled",
        "loopback": "disabled",
        "duplex": "enabled"
     },
     {
        "autoneg": "enabled",
        "loopback": "disabled",
        "duplex": "enabled"
     }
  ]
}

Я хочу выполнить поиск по всем полям, для которых «включено».

Я пробовал следующие запросы, но они не работали.

curl -XGET "http://esserver:9200/comcast/inventory/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match":{
       "_all": "enabled"
     }
   }
}'



curl -XGET "http://esserver:9200/comcast/inventory/_search" -H 'Content-Type: application/json' -d'
        {
          "query": {
            "query_string": {
              "query": "enabled",
              "fields": ["*"]
            }
          }
        }'

Носледующий запрос работал

curl -XGET "http://esserver:9200/comcast/inventory/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match":{
       "_all": "abc"
     }
   }
}'

Итак, внешний вид _all соответствует только полям верхнего уровня, а не вложенным полям.Есть ли способ запросить текст, содержащийся во всех полях, включая вложенные.Я не хочу явно указывать имена вложенных полей.Я ищу вид глобального поиска, где я хочу найти «текст» в любом месте документа.

Спасибо.

1 Ответ

0 голосов
/ 21 февраля 2019

OK.Получил это работает.Я установил отображение dynamic:false.Похоже, ES будет искать только в полях, указанных в сопоставлениях, а мои слова поиска были в динамически добавленных полях.

Создание dynamic:'strict' помогло мне сузить проблему.

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