Jestem w trakcie aktualizacji moich elastycznej instancji wyszukiwania do aktualnej wersji (7.12) na ten temat. Czy ktoś może pomógł mi przekonwertować nasze aktualne ciało za żądanie do jednego, co będzie działać?

{"query"=>
  {"filtered"=>
    {"filter"=>
      {"and"=>
        [{"term"=>{"foo"=>"true"}},
         {"or"=>
           [{"terms"=>
              {"ids"=>
                ["32",
                 "644",
                ]}},
            {"missing"=>{"field"=>"ids"}}]}]}}},
 "facets"=>{}}

Wszystkie zagnieżdżone Hash naprawdę się bawi z głową: - /

0
snguyen 14 kwiecień 2021, 21:54

1 odpowiedź

Najlepsza odpowiedź
  1. filtered Zapytanie zastępuje się Query Bool .

  2. must jest taka sama jak logiczna i operator, a should jest taka sama jak logiczna lub operator

  3. missing Zapytanie zastępuje must_not wraz z Istnieje zapytanie

  4. facets zostały wymienione przez Agregacje

Zmodyfikowane zapytanie będzie

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "foo": "true"
          }
        },
        {
          "bool": {
            "should": [
              {
                "terms": {
                  "ids": [
                    "32",
                    "644"
                  ]
                }
              },
              {
                "bool": {
                  "must_not": {
                    "exists": {
                      "field": "ids"
                    }
                  }
                }
              }
            ]
          }
        }
      ]
    }
  },
  "aggs": {}
}
1
ESCoder 14 kwiecień 2021, 19:13