elasticsearch 학습 노트 (28) - Elasticsearch 실전 각종query 검색
4157 단어 elasticsearch
각종query 검색 문법
match_all
GET /{index}/_search
{
"query": {
"match_all": {}
}
}
match
GET /{index}/_search
{
"query": {
"match": {
"FIELD": "TEXT"
}
}
}
multi match
GET /{index}/_search
{
"query": {
"multi_match": {
"query": "",
"fields": []
}
}
}
range query
GET /{index}/_search
{
"query": {
"range": {
"FIELD": {
"gte": 10,
"lte": 20
}
}
}
}
term query
GET /{index}/_search
{
"query": {
"term": {
"FIELD": {
"value": "VALUE"
}
}
}
}
terms query
GET /{index}/_search
{
"query": {
"terms": {
"FIELD": [
"VALUE1",
"VALUE2"
]
}
}
}
exist query
GET /{index}/_search
{
"query": {
"exists": {
"field": ""
}
}
}
다중 검색 조건 조합 조회
bool: must, must_not, should, filter
모든 하위 조회는 문서의 관련도 점수를 계산한 다음bool은 모든 점수를 종합하여 하나의 점수로 합친다. 물론 filter는 점수를 계산하지 않는다.예:
{
"bool": {
"must": { "match": { "title": "how to make millions" }},
"must_not": { "match": { "tag": "spam" }},
"should": [
{ "match": { "tag": "starred" }}
],
"filter": {
"bool": {
"must": [
{ "range": { "date": { "gte": "2014-01-01" }}},
{ "range": { "price": { "lte": 29.99 }}}
],
"must_not": [
{ "term": { "category": "ebooks" }}
]
}
}
}
}
GET /{index}/_search
{
"query": {
"constant_score": {
"filter": {},
"boost": 1.2
}
}
}
잘못된 검색 위치 지정
일반적으로 매우 복잡하고 방대한 검색에 사용된다. 예를 들어 백 줄에 달하는 검색을 한꺼번에 썼을 때, 이 때 먼저validateapi로 검색이 합법적인지 검증할 수 있다.
GET /employee/_validate/query?explain
{
"query": {
"constant_score": {
"filter": {},
"boost": 1.2
}
}
}
{
"valid" : false,
"error" : "ParsingException[Failed to parse]; nested: IllegalArgumentException[query malformed, empty clause found at [4:18]];; java.lang.IllegalArgumentException: query malformed, empty clause found at [4:18]"
}
GET /employee/_validate/query?explain
{
"query": {
"constant_score": {
"filter": {
"term": {
"name": "tom"
}
},
"boost": 1.2
}
}
}
{
"_shards" : {
"total" : 1,
"successful" : 1,
"failed" : 0
},
"valid" : true,
"explanations" : [
{
"index" : "employee",
"valid" : true,
"explanation" : "(ConstantScore(name:tom))^1.2"
}
]
}
검색 결과 정렬 규칙 사용자 정의
기본적으로 되돌아오는 문서는 _score 내림차순으로 배열된만약 우리가 스스로 정렬 규칙을 정의하고 싶다면 어떻게,sort만 사용하면 된다
#
"sort": [
{
"FIELD": {
"order": "desc"
}
}
]
#
GET /{index}/_search
{
"query": {
"constant_score": {
"filter": {
"exists": {
"field": ""
}
},
"boost": 1.2
}
},
"sort": [
{
"FIELD": {
"order": "desc"
}
}
]
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
kafka connect e elasticsearch를 관찰할 수 있습니다.No menu lateral do dashboard tem a opção de connectors onde ele mostra todos os clusters do kafka connect conectados atu...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.