IT

[필터링 됨]에 등록 된 [쿼리] 없음

lottoking 2020. 8. 30. 09:03
반응형

[필터링 됨]에 등록 된 [쿼리] 없음


결과를 필터링해야하는 쿼리가 있습니다.

이 내 질문입니다

{
    "query": {
        "filtered": {
            "query": {
                "multi_match": {
                    "default_operator": "AND",
                    "fields": [
                        "author",
                        "title",
                        "publisher",
                        "year"
                    ],
                    "query": "George Orwell"
                }
            },
            "filter": {
                "terms": {
                    "year": [
                        1980,
                        1981
                    ]
                }
            }
        }
    }
}

라는 오류가 발생 no [query] registered for [filtered]합니다. 필터링 된 필드에 대한 쿼리가 명확하게 있습니다. elasticsearch 페이지의 필터링 된 쿼리 문서에 형식을보고 있습니다. https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-filtered-query.html


filtered쿼리는 사용하지 않았는데 ES 5.0에서 제거되었습니다. 이제 대신 쿼리를 사용합니다 .bool/must/filter

{
    "query": {
        "bool": {
            "must": {
                "multi_match": {
                    "operator": "and",
                    "fields": [
                        "author",
                        "title",
                        "publisher",
                        "year"
                    ],
                    "query": "George Orwell"
                }
            },
            "filter": {
                "terms": {
                    "year": [
                        1980,
                        1981
                    ]
                }
            }
        }
    }
}

다음은 두 쿼리의 차이점입니다.

3,4c3,4
<         "bool": {
<             "must": {
---
>         "filtered": {
>             "query": {
6c6
<                     "operator": "and",
---
>                     "default_operator": "AND",

추신 : 지금보고있는 참조 페이지는 "삭제 된 페이지"에 더 이상 기본 문서의 일부가 아닙니다.

참고 URL : https://stackoverflow.com/questions/40519806/no-query-registered-for-filtered

반응형