ElasticSearch 실전(8)QueryDSL
3315 단어 ElasticSearchElasticsearch
HTTP 요청 예:
GET /website/_search
{
"query": {
"match_all": {}
}
}
Spring-data-elasticsearch 코드 예:
Request request = new Request("GET", "/website/_search");
request.setJsonEntity("{\"query\":{\"match_all\":{}}}");
Response response = restClient.performRequest(request);
모든 것을 조회하고 날짜에 따라 거꾸로 배열하여 앞의 10개를 찾다
{
"query": {
"match_all": {}
},
"sort": {
"date": {
"order": "desc"
}
},
"from": 0,
"size": 10
}
검색 author 필드에 키워드 포함 Smith
{
"query": {
"match": {
"author": "Smith"
}
}
}
좋아요 수가 40인 문서 조회
{
"query": {
"match": {
"likes": "40"
}
}
}
검색 텍스트 필드에 "I like"라는 단어가 포함되어 있고 명중 부분의 하이라이트 정보를 되돌려줍니다.
{
"query": {
"match_phrase": {
"text": "I like"
}
},
"highlight": {
"fields": {
"text": {}
}
}
}
여러 필드 (author,text) 에서 조회
{
"query": {
"multi_match": {
"query": "I like Jane",
"fields": ["author", "text"]
}
},
"highlight": {
"fields": {
"text": {},
"author": {}
}
}
}
bool 조회는 볼 논리를 사용하여 기초적인 조회를 복잡한 조회로 구성한다
검색 author 필드에 Smith 및 Jane 포함
{
"query": {
"bool": {
"must": [{
"match": {
"author": "Smith"
}
}, {
"match": {
"author": "Jane"
}
}]
}
}
}
검색 author 필드에는 Smith 또는 Jones가 있지만 Jane은 사용할 수 없습니다.
{
"query": {
"bool": {
"should": [{
"match": {
"author": "Smith"
}
}, {
"match": {
"author": "Jones"
}
}],
"must_not": {
"match": {
"author": "Jane"
}
}
}
}
}
필터 사용
{
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": [{
"range": {
"likes": {
"gte": 20,
"lte": 100
}
}
}, {
"term": {
"author.keyword": "John Smith"
}
}]
}
}
}
작성자별 문서 수 집계
{
"size": 0,
"aggs": {
"group_by_author": {
"terms": {
"field": "author.keyword"
}
}
}
}
작성자가 발표한 각 문서의 수를 집계하고 작성자가 발표한 문서의 좋아요 수 평균을 계산하며 이 평균을 거꾸로 배열합니다
{
"size": 0,
"aggs": {
"group_by_author": {
"terms": {
"field": "author.keyword",
"order": {
"average_likes": "desc"
}
},
"aggs": {
"average_likes": {
"avg": {
"field": "likes"
}
}
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
spring-data-elasticsearch 페이지 조회부록: 1. 이름에서 알 수 있듯이QueryBuilder는 검색 조건, 필터 조건을 구축하는 데 사용되고 SortBuilder는 정렬을 구축하는 데 사용된다. 예를 들어 우리는 어느 위치에서 100미터 범위 내의 모...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.