elasticsearch QueryDSL
-
정의
쿼리를 정의하기 위해 JSON을 기반으로 하는 전체 쿼리 DSL(Domain Specific Language)을 제공.
RDMS에 정해진 where문 같은 아이들. -
score
문서와 얼마나 관련있는가에 대한 점수는
_score
를 통해 알 수 있다.
점수계산은 query, filter 컨텍스트의 실행되는 지 여부에 따라 달라짐 -
Query Context
이 문서가 이 쿼리절과 얼마나 잘 일치하는가?
점수계산 O -
Filter Context
이 문서가 이 쿼리 절과 일치합니까?
점수계산 X -
Query + Filter Context Example
GET /_search
{
"query": {
"bool": {
"must": [
{ "match": { "title": "Search" }},
{ "match": { "content": "Elasticsearch" }}
],
"filter": [
{ "term": { "status": "published" }},
{ "range": { "publish_date": { "gte": "2015-01-01" }}}
]
}
}
}
'
→ 일반 검색
GET /_search
{
"query": {"match": {"field": "value"}}
}
→ 특정 field 검색
GET /_search
{
"fields" : ["field1", "field2"],
"query" : {
"term" : {"field" : "value"}
}
}
-
복합쿼리
bool query +
must
: 문서에 일치하는 절이 나타나야 함. 점수에 기여. AND연산자 같음.
filter
: must와 동일하게 문서에 일치하는 절이 나타,나야 함. 단, 점수는 무시되고 캐싱에 대해 고려. -
Response
hits : 결과 리스트
*laravel에서 es를 사용할때 elasticsearch/client 패키지 사용. scout라는 패키지도 따로 사용하는 것 같은데 이는 찾아볼것
Author And Source
이 문제에 관하여(elasticsearch QueryDSL), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wjdgkrud/elasticsearch-QueryDSL저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)