불 공동 질문: 반드시 해야 한다, 해야 한다, must_not
"BMW와 함께하지만 태그에는 포함되지 않는 콘텐츠"와 비슷한 요청을 원한다면, bool federated query를 사용해야 합니다.
공동 쿼리는 세 가지 키워드를 사용합니다: must, should, must_not.
이 세 가지는 다음과 같이 이해할 수 있습니다
must: 문서는 조건과 정확히 일치해야 합니다
should: 조건이 하나 이상이어야 하며, 최소 하나 이상의 조건이 충족되면 이 문서는 다음을 충족합니다
must_not:문서는 기준에 부합하지 않아야 합니다
공식 웹사이트 소개:https://www.elastic.co/guide/cn/ ... bining-filters.html
DSL 쿼리
match_all 쿼리
모든 문서를 쿼리할 수 있으며, 쿼리 조건이 없는 기본 문장입니다.
이 쿼리는 필터를 병합할 때 자주 사용됩니다. 예를 들어, 모든 메일박스를 가져와야 하고, 모든 문서 관련 내용이 동일하므로 _score 1입니다.
매치 쿼리
매칭 쿼리는 전체 텍스트 쿼리가 필요하든 정확한 쿼리가 필요하든 기본적으로 사용되는 표준 쿼리입니다.
match를 사용해 전체 텍스트 필드를 쿼리하면, 실제 쿼리 전에 쿼리 문자를 분석하기 위해 분석기를 사용합니다:
일치 항목에 정확한 값을 지정하면, 숫자, 날짜, 불리언, 또는 not_analyzed 문자열을 만날 때 해당 값을 검색합니다:
팁: 정확히 일치하는 검색을 할 때는 필터 문이 데이터를 캐시하기 때문에 필터 문장을 사용하는 것이 가장 좋습니다.
매칭 쿼리는 정확한 필드를 지정하는 정확한 값만 검색할 수 있으며, 문법 오류를 피하려면 올바른 필드 이름만 지정하면 됩니다.
multi_match 쿼리
multi_match 쿼리는 매칭 쿼리를 기반으로 여러 필드를 동시에 검색하고, 여러 필드에서 한 필드를 동시에 검색할 수 있게 해줍니다:
Bool 쿼리
불 쿼리는 불 필터링과 유사하며 여러 쿼리 절을 병합하는 데 사용됩니다. 차이점은 불 필터는 매칭 성공 여부를 직접 알려줄 수 있는 반면, 불 쿼리는 각 쿼리 절의 _score(상관관계 점수)를 계산한다는 점입니다.
must:: 查询指定文档一定要被包含。 must_not:: 쿼리 지정된 문서는 포함하지 않아야 합니다.
should:: 查询指定文档,有则可以为文档相关性加分。
다음 쿼리를 통해 제목 필드에 "How to Make millions"가 포함되어 있고 "tag" 필드는 스팸으로 표시되어 있지 않다는 것을 알 수 있습니다. 만약 '별표'로 표시되어 있거나 2014년 이전에 공개일이 있다면, 이 매우되는 문서들은 유사한 사이트보다 더 높은 수준에 해당합니다:
팁: bool 쿼리에 필수 절이 없다면, 적어도 한 개의 해야 할 절이 있어야 합니다. 하지만 필수 절이 있다면 필요 절 없이도 쿼리를 할 수 있습니다.
와일드카드 쿼리
표준 셸 와일드카드 쿼리를 사용하세요
다음 쿼리는 W1F 7HW와 W2F 8HW가 포함된 문서와 일치합니다:
예를 들어, 다음 호스트네임 쿼리는 다음 셸 와일드카드와 일치합니다:
regexp 쿼리
예를 들어, W로 시작하는 우편번호 뒤에 숫자가 오는 우편번호만 맞추고 싶다고 합시다. 정규 표현 쿼리를 사용하면 더 복잡한 패턴을 작성할 수 있습니다:
이 정규 표현식은 항목이 W로 시작하고, 0부터 9까지의 숫자가 이어지고, 그 다음에 하나 이상의 다른 문자가 따라야 함을 명시합니다.
다음 예는 모두 wxopen로 정칙 시작이다
접두사 쿼리
어떤 문자로 시작하는지, 아래 예시처럼 접두사를 더 간단하게 사용할 수 있습니다:
구문 매칭
가까운 곳에서 몇 단어를 찾아야 할 때는 match_phrase 쿼리를 사용합니다:
매칭 쿼리와 유사하게, 쿼리match_phrase 먼저 쿼리 문자열을 파싱하여 용어 목록을 생성합니다. 모든 항목을 검색할 것입니다, 하지만 모든 검색어가 포함된 문서만 보관되며, 용어의 위치는 인접해 있어야 합니다. Quick Fox라는 단어에 대한 쿼리는 맞지 않습니다 저희 문서에는 퀵 항목과 박스 항목이 인접해 있는 경우가 없습니다. match_phrase 쿼리는 다음과 같은 유형의 매칭 쿼리로도 작성할 수 있습니다:
|