mobile menu

The Arrow Newsletter

mobile menu

elasticsearch 쿼리 예제

JSONP 지원은 간단한 콜백 쿼리 문자열 매개 변수를 통해 모든 요청에서 사용할 수 있습니다: 가장 기본적인 쿼리입니다. 모든 콘텐츠와 모든 개체에 대해 1.0의 점수로 반환합니다. 기본 쿼리는 Lucene 쿼리 파서 구문을 지원하는 q 쿼리 문자열 매개 변수를 사용하므로 특정 필드(예: fieldname:value), 와일드카드(예: abc*) 등에 대한 필터를 사용합니다. 용어 시퀀스와 일치하는 구 쿼리를 만듭니다. Bool 쿼리는 And, Or, Filter 및 Not 절과 같은 다른 복합 쿼리 절의 기능을 결합할 수 있기 때문에 가장 많이 사용됩니다. 이 네 절은 Bool 쿼리를 사용하기 위해 다양한 버전에서 더 이상 사용되지 않도록 사용됩니다. 이를 사용하는 것이 가장 좋은 예로 설명됩니다: Elasticsearch 공식 설명서 살펴보기: 심층 검색. 쿼리 dsl의 모든 제약 조건과 옵션을 설정하는 대신 다양한 예제를 제공합니다. 여러 쿼리 절 형식이 있지만 복합 쿼리를 빌드하기 위해 여러 절을 결합하는 데 사용되기 때문에 가장 많이 사용하는 쿼리는 복합 쿼리입니다. 누락 된 쿼리 – 이것은 존재 쿼리에 완전히 반대입니다,이 쿼리는 null 값을 갖는 특정 필드 또는 필드없이 개체를 검색합니다. 쿼리 언어 쿼리는 JSON 구조로 작성된 다음 쿼리 끝점(아래 쿼리 langague의 세부 정보)으로 전송됩니다. 쿼리를 검색 끝점으로 전송하는 방법에 대한 두 가지 옵션이 있습니다.

이 쿼리는 특정 인덱스 또는 문서와 연결된 분석기에서 작동합니다. 이 섹션에서는 전체 텍스트 쿼리의 다른 유형에 대해 설명합니다. bool 쿼리를 사용하는 경우 필터 절을 사용하여 쿼리 결과를 필터링할 수 있습니다. 예를 들어 제목이나 요약에 “Elasticsearch”라는 용어가 있는 책을 쿼리하고 있지만 리뷰가 20개 이상인 책으로만 결과를 필터링하려고 합니다. 우리 팀과 저는 MySQL, SQLite 및 대규모 Cassandra 클러스터의 많은 SQL 기반 데이터로 작업하지만 보고 시스템은 Elasticsearch를 기반으로 구축됩니다. 경우에 따라 SQL에서 Lucene 구문으로 생각을 전환하려면 문서를 확인해야 합니다. 그러나 대부분의 기술 문서는 시작하기 위한 것이거나 모든 기능의 모든 변형을 제공하므로 목이 깊고 해결해야 할 특정 문제가 필요할 때 좋습니다. 기본 쿼리는 URL의 쿼리 문자열 매개 변수만 사용하여 수행할 수 있습니다. 예를 들어 다음 문서에서 모든 필드에서 `hello` 텍스트를 검색하고 최대 5개의 결과를 반환합니다 http://localhost:9200/wx-rtbeat-%2A/_search. %2A는 wx-rtbeat-로 시작하는 모든 인덱스를 쿼리할 수 있도록 인코딩된 URL *(와일드카드)입니다.

위의 예제에서 볼 수 있듯이 문자열 및 날짜와 같은 비숫자 필드의 범위도 사용할 수 있습니다. 검색어가 필드에 있는 경우 결과를 반환하는 부울 쿼리를 만듭니다. 반대로 이 예제에서는 두 개의 일치 쿼리를 구성하고 주소에 “mill” 또는 “lane”을 포함하는 모든 계정을 반환합니다. 클러스터를 선택합니다. 참고: 다중 단어 쿼리의 경우 일치 쿼리를 사용하면 기본 또는 연산자 대신 및 연산자를 사용할지 여부를 지정할 수 있습니다. 반환된 결과의 관련성을 조정하기 위해 minimum_should_match 옵션을 지정할 수도 있습니다. 자세한 내용은 Elasticsearch 가이드에서 확인할 수 있습니다. 여러 필드에서 검색하기 때문에 특정 필드의 점수를 높일 수 있습니다. 아래의 모순된 예에서는 요약 필드의 중요성을 높이기 위해 요약 필드의 점수를 3 배로 향상시켜 문서 _id 4의 관련성을 높입니다.