Elasticsearch-검색 API

이 API는 Elasticsearch에서 콘텐츠를 검색하는 데 사용됩니다. 사용자는 쿼리 문자열을 매개 변수로 사용하여 get 요청을 보내 검색하거나 게시 요청의 메시지 본문에 쿼리를 게시 할 수 있습니다. 주로 모든 검색 API는 다중 인덱스, 다중 유형입니다.

다중 색인

Elasticsearch를 사용하면 모든 인덱스 또는 일부 특정 인덱스에있는 문서를 검색 할 수 있습니다. 예를 들어, central이 포함 된 이름을 가진 모든 문서를 검색해야하는 경우 다음과 같이 할 수 있습니다.

GET /_all/_search?q=city:paprola

위 코드를 실행하면 다음과 같은 응답이 나타납니다.

{
   "took" : 33,
   "timed_out" : false,
   "_shards" : {
      "total" : 7,
      "successful" : 7,
      "skipped" : 0,
      "failed" : 0
   },
   "hits" : {
      "total" : {
         "value" : 1,
         "relation" : "eq"
      },
      "max_score" : 0.9808292,
      "hits" : [
         {
            "_index" : "schools",
            "_type" : "school",
            "_id" : "5",
            "_score" : 0.9808292,
            "_source" : {
               "name" : "Central School",
               "description" : "CBSE Affiliation",
               "street" : "Nagan",
               "city" : "paprola",
               "state" : "HP",
               "zip" : "176115",
               "location" : [
                  31.8955385,
                  76.8380405
               ],
               "fees" : 2200,
               "tags" : [
                  "Senior Secondary",
                  "beautiful campus"
               ],
               "rating" : "3.3"
            }
         }
      ]
   }
}

URI 검색

Uniform Resource Identifier를 사용하여 검색 작업에서 많은 매개 변수를 전달할 수 있습니다-

S. 아니 매개 변수 및 설명
1

Q

이 매개 변수는 쿼리 문자열을 지정하는 데 사용됩니다.

2

lenient

이 매개 변수는 쿼리 문자열을 지정하는 데 사용됩니다.이 매개 변수를 true로 설정하면 형식 기반 오류를 무시할 수 있습니다. 기본적으로 false입니다.

fields

이 매개 변수는 쿼리 문자열을 지정하는 데 사용됩니다.

4

sort

이 매개 변수를 사용하여 정렬 된 결과를 얻을 수 있습니다.이 매개 변수의 가능한 값은 fieldName, fieldName : asc / fieldname : desc입니다.

5

timeout

이 매개 변수를 사용하여 검색 시간을 제한 할 수 있으며 응답에는 지정된 해당 시간의 히트 만 포함됩니다. 기본적으로 시간 제한이 없습니다.

6

terminate_after

쿼리가 일찍 종료되는 각 샤드에 대해 지정된 수의 문서로 응답을 제한 할 수 있습니다. 기본적으로 terminate_after가 없습니다.

7

from

반환 할 히트의 시작 색인입니다. 기본값은 0입니다.

8

size

반환 할 히트 수를 나타냅니다. 기본값은 10입니다.

본문 검색 요청

요청 본문에 쿼리 DSL을 사용하여 쿼리를 지정할 수도 있으며 이전 장에서 이미 많은 예제가 제공되었습니다. 한 가지 예가 여기에 있습니다.

POST /schools/_search
{
   "query":{
      "query_string":{
         "query":"up"
      }
   }
}

위 코드를 실행하면 다음과 같은 응답이 나타납니다.

{
   "took" : 11,
   "timed_out" : false,
   "_shards" : {
      "total" : 1,
      "successful" : 1,
      "skipped" : 0,
      "failed" : 0
   },
   "hits" : {
      "total" : {
         "value" : 1,
         "relation" : "eq"
      },
      "max_score" : 0.47000363,
      "hits" : [
         {
            "_index" : "schools",
            "_type" : "school",
            "_id" : "4",
            "_score" : 0.47000363,
            "_source" : {
               "name" : "City Best School",
               "description" : "ICSE",
               "street" : "West End",
               "city" : "Meerut",
               "state" : "UP",
               "zip" : "250002",
               "location" : [
                  28.9926174,
                  77.692485
               ],
               "fees" : 3500,
               "tags" : [
                  "fully computerized"
               ],
               "rating" : "4.5"
            }
         }
      ]
   }
}