이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 20947|회답: 1

ElasticSearch 복합 쿼리는 반드시 사용해야 하며, 사용해야 must_not

[링크 복사]
게시됨 2018. 12. 28. 오후 12:01:09 | | |
불 공동 질문: 반드시 해야 한다, 해야 한다, 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 쿼리는 다음과 같은 유형의 매칭 쿼리로도 작성할 수 있습니다:







이전의:12월 18일 중국 회계 온라인 학교에 인수됨 (회계 실무 6단계 통관 훈련 캠프)
다음:C# regex는 HTML에서 A 태그 href의 값을 가져옵니다
게시됨 2022. 11. 22. 오후 2:25:30 |
ES를 배우세요, 집주인님께 감사드립니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com