Миграционный фильтр Elasticsearch

Это моя проблема: мне нужно перевести синтаксис моего фильтра/запроса (elasticsearch 1.x) в синтаксис elasticsearch 5.x.

Это мой запрос:

{
"query ": {
    "filtered ": {
        "query ": {
            "fuzzy_like_this ": {
                "like_text ": "    cin ",
                "max_query_terms ": 12,
                "fuzziness ": 0.7
            }
        },
        "filter ": {
            "and ": {
                "filters ": [{
                    "or ": {
                        "filters ": [{
                            "type ": {
                                "value ": "etude_patrimoine_architecture "
                            }
                        }]
                    }
                }]
            }
        }
    }
}
}

Я не очень понимаю синтаксис эластичных 5.x с bool.

Будем признательны за любую помощь в переносе этого фильтра.


person Gaet    schedule 03.11.2017    source источник


Ответы (2)


В принципе,

  • часть filtered/query входит в bool/must
  • часть filtered/filter идет либо в bool/filter, bool/must_not, либо в bool/should в зависимости от того, нужно ли вам поведение И, НЕ или ИЛИ.

Что-то вроде этого должно помочь вам начать:

{
  "query": {
    "bool": {
      "must": [
         query
      ],
      "should": [
         queryLayers
      ]
    }
  }
}
person Val    schedule 03.11.2017
comment
Валя, спасибо, попробую ваше решение. Я обновил свой пост, чтобы быть более понятным с json stringify. - person Gaet; 03.11.2017

это окончательное решение:

{
    "query": {
        "bool": {
            "must": [{
                "match": {
                    "_all": {
                        "query": QUERYVALUE,
                        "fuzziness": "AUTO"
                    }
                }
            }, {
                "bool": {
                    "should": [{
                        "type": {
                            "value": VAL1
                        }
                    }, {
                        "type": {
                            "value": VAL2
                        }
                    }]
                }
            }],
            "filter": {
                "geo_shape": {
                    "geometry": {
                        "shape": {
                            "type": "envelope",
                            "coordinates": COORDARAY
                        }
                    }
                }
            }
        }
    }
}
person Gaet    schedule 07.11.2017