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"
}
}
]
}
}