ES 의 해당 DSL 은 다음과 같습니다.
ES5.x 이상 버전에서는 유형에 따라 정확한 값 일치를 위해 문자열 유형을 키워드 또는 텍스트 유형으로 설정해야 합니다.
정확한 값 조회를 수행할 때 필터를 사용할 수 있습니다. 필터가 매우 빠르게 실행되고 종속성이 계산되지 않기 때문입니다 (ES 는 쿼리 점수를 계산함). 필터 쿼리 결과는 캐시하기 쉽습니다.
부울 필터 구성요소:
여러 개의 필터가 필요할 때, 우리는 단지 그것들을 bool 필터의 다른 부분에 넣기만 하면 된다.
용어는 다음을 포함하는 것을 의미합니다.
이름은 ["오닐", "메디"] 를 포함한다.
결과 반환:
범위 조회는 포함 및 제외 범위 표현식을 제공할 수 있으며, 다음과 같은 옵션을 결합할 수 있습니다.
Sql 의 범위 조회와 유사:
ES 의 해당 DSL 은 다음과 같습니다.
다음 SQL, age 가 비어 있지 않습니다.
ES 의 해당 DSL 은 다음과 같습니다.
다음 SQL, age 가 null 입니다.
ES 의 해당 DSL 은 다음과 같습니다.
참고: 누락된 질의는 버전 5.x 에서 더 이상 존재하지 않습니다.
분석되지 않은 접두사 문자 일치:
와일드카드 표현식과 일치하는 필드가 있는 문서 일치 (분석되지 않음). 지원되는 와일드카드 문자:
1) * 모든 문자 시퀀스 (빈 문자 시퀀스 포함) 와 일치합니다.
2)? 모든 단일 문자와 일치합니다.
이 쿼리는 여러 용어를 통과해야 하기 때문에 속도가 느릴 수 있습니다.
매우 느린 와일드카드 조회를 방지하기 위해 와일드카드는 * * * * 또는? 시작
정규식 쿼리를 사용하면 정규식 용어를 사용하여 쿼리할 수 있습니다.
예를 들면 다음과 같습니다.
참고: 일치 * 는 매우 느리며 긴 접두사가 필요합니다.
보통은 비슷해요. *? +와일드카드 쿼리의 일반 검색 성능은 매우 낮습니다.
퍼지 쿼리는 모호성에 지정된 최대 편집 거리 내에서 가능한 모든 일치를 찾은 다음 용어 사전을 검사하여 인덱스에서 검색할 키워드를 찾습니다.
예를 들면 다음과 같습니다.
유형이 user 인 인덱스 test_index 에서 모든 정보를 검색합니다. 그러나 es6.x 버전에서는 색인당 하나의 유형만 있고 향후 es7.x 버전에서는 취소될 예정이므로 이 질의는 의미가 없습니다.
지정된 id 에 대한 모든 정보를 반환합니다.
전체 텍스트 검색 쿼리는 분석기를 통해 질의 조건을 분석한 다음 전체 텍스트 도메인에서 전체 텍스트 질의를 수행합니다.
전체 텍스트 검색은 맵에 설정된 분석기에 따라 맵에 ik 끊기 문자를 사용합니다.
따라서 쿼리 개발 과정에서 쿼리 방법을 선택할 수 있도록 인덱스 매핑을 먼저 이해해야 합니다.
질의에 허용된 텍스트/숫자/날짜 유형을 일치시키고, 분석하고, 질의를 구성합니다.
수신 매개 변수의 세그먼트를 쿼리하여 같은 단어를 가진 문서를 검색합니다.
Match_phrase 는 분석 텍스트를 질의하고 분석 텍스트에서 구문 질의를 생성합니다.
사용자는 쿼리 입력을 완료하기 전에 검색 결과를 표시하는 데 익숙해져 있습니다. 이를 인스턴트 검색 또는 인라인 검색이라고 합니다.
사용자가 더 짧은 시간 내에 검색 결과를 얻을 수 있을 뿐만 아니라 인덱스에서 실제 결과를 검색하도록 안내할 수 있습니다.
예를 들어, 사용자가 조니가 bl 을 받는다면 검색 기준 입력을 마치기 전에 조니가 블랙을 받고 조니가 블루를 받길 바랍니다.
Match_phrase_prefix 는 텍스트의 마지막 단어에 접두어 일치를 허용한다는 점을 제외하면 Match_phrase 와 동일합니다.