Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 자바
- Dispathcher Servlet이란
- 안드로이드스튜디오
- 동의어 파일
- ElasticSearch 동의어 사전
- ContextLoaderListener란
- ElasticSearch NGram
- Servlet Container란
- ElasticSearch Shingle
- Servlet Life Cycle
- spring 장점
- 계산기
- Bean Factory란
- H2
- ApplicationContext란
- elasticSearch
- 안드로이드
- 인텔리제이
- ElasticSearch 동의어 파일
- H2 DB
- Spring Handler
- Spring Container란
- Servlet 멀티 스레딩
- Servlet과 Thread
- ElasticSearch 토큰필터
- layout
- 토큰필터
- ElasticSearch EdgeNGram
- Java
- Spring Servlet이란
Archives
- Today
- Total
결국 무엇이든 해내는 사람
ElasticSearch - bool 쿼리 [ 예제, 설명 ] 본문
반응형
-- 샘플 bulk
POST my_index/_bulk
{"index":{"_id":1}}
{"message":"The quick brown fox"}
{"index":{"_id":2}}
{"message":"The quick brown fox jumps over the lazy dog"}
{"index":{"_id":3}}
{"message":"The quick brown fox jumps over the quick dog"}
{"index":{"_id":4}}
{"message":"Brown fox brown dog"}
{"index":{"_id":5}}
{"message":"Lazy jumping dog"}
-- query_string 쿼리는 여러 조건을 조합하기에는 용이한 문법이지만 옵션이 한정
-- 여러 쿼리를 조합하기 위해서는 상위에 bool 쿼리를 사용하고 그안에 다른 쿼리를 넣는 방식 이용
-- bool 쿼리는 4개의 인자 존재, 해당 인자안에 다른 쿼리를 배열로 넣는 방식으로 동작
GET <인덱스명>/_search
{
"query": {
"bool": {
"must": [
{ <쿼리> }, …
],
"must_not": [
{ <쿼리> }, …
],
"should": [
{ <쿼리> }, …
],
"filter": [
{ <쿼리> }, …
]
}
}
}
-- must : 쿼리가 참인 도큐먼트들
-- must_not : 쿼리가 거짓인 도큐먼트들을 검색
-- should : 검색 결과 중 이 쿼리에 해당하는 도큐먼트의 점수를 높인다
-- filter : 쿼리가 참인 도큐먼트를 검색하지만 스코어를 계산하지 않는다. must 보다 검색속도가 빠르고 캐싱이 가능하다
-- quick 과 "lazy dog" 검색
-- must값은 배열로 구성되어있음
GET my_index/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"message": "quick"
}
},
{
"match_phrase": {
"message": "lazy dog"
}
}
]
}
}
}
-- quick 과 "lazy dog"가 포함되지 않은 문서 검색
GET my_index/_search
{
"query": {
"bool": {
"must_not": [
{
"match": {
"message": "quick"
}
},
{
"match_phrase": {
"message": "lazy dog"
}
}
]
}
}
}
-- must와 should는 SQL의 AND와 OR 과 유사하지만 정확히 같지는 않다고함
-- must는 AND와 유사하게 동작하지만, should는 OR과 정확히 일치하지는 않음
-- ( A or B ) and ( not C ) 라는 쿼리를 만들고자하면
-- SQL :
( A or B ) and ( not C )
-- ES :
must: [ { match "A B" } ] //띄어쓰기는 OR
must_not: [ { match C } ]
반응형
'두서없는 공부 노트 > ElasticSearch' 카테고리의 다른 글
ElasticSearch - range 쿼리 [ 예제, 설명 ] (0) | 2021.12.13 |
---|---|
ElasticSearch - keyword 타입 [ 예제, 설명 ] (0) | 2021.12.13 |
ElasticSearch - Exact Value Query ( 정확값 쿼리), filter [ 예제, 설명 ] (0) | 2021.12.13 |
ElasticSearch - should와 score [ 예제, 설명 ] (0) | 2021.12.13 |
ElasticSearch - Relevancy ( 정확도 ) [ 예제, 설명 ] (0) | 2021.12.13 |
Comments