elasticsearch 학습노트 고급편(7)-term+bool 검색 밑바닥 원리에 대한 분석

2317 단어 elasticsearch
위에서 말한 바와 같이 멀티-value의 검색 방식에 대해 실현하는 데는 여러 가지 방식이 있다는 것을 알 수 있다.여기서 설명하자면, 실현 방식은 매우 많지만,elasticsearch는 조회할 때 밑바닥에서bool+term의 형식으로 바뀐다

1. 일반적인 match는term+should로 어떻게 변환합니까

{
    "match": {
        "title": "java elasticsearch"
    }
}

위의 matchquery를 사용하여 다수치 검색을 할 때,elasticsearch는 이 matchquery를bool의 문법으로 자동으로 변환합니다
{
    "bool": {
        "should": [
            {
                "term": {
                    "title": "java"
                }
            },
            {
                "term: {
                    "title": "elasticsearch"
                }
            }
        ]
    }
}

2. and match는term+must로 어떻게 변환합니까

{
    "match": {
        "title": {
            "query": "java elasticsearch",
            "operator": "and"
        }
    }
}

변환:
{
    "bool": {
        "must": [
            {
                "term": {
                    "title": "java"
                }
            },
            {
                "term": {
                    "title": "elasticsearch"
                }
            }
        ]
    }
}

3、minimum_should_match 변환 방법

{
    "match": {
        "title": {
            "query": "java elasticsearch spark hadoop",
            "minimum_should_match": 3
        }
    }
}

변환:
{
    "bool": {
        "should": [
            {
                "term": {
                    "title": "java"
                }
            },
            {
                "term": {
                    "title": "elasticsearch"
                }
            },
            {
                "term": {
                    "title": "spark"
                }
            },
            {
                "term": {
                    "title": "hadoop"
                }
            }
        ],
        "minimum_should_match": 3
    }
}

좋은 웹페이지 즐겨찾기