쿼리 조회 시 두 가지 방법이 있다.
query
filter
filter 조회가 query 조회보다 빠르다.
이유는 score 계산을 하지 않고, 검색 결과를 캐쉬하기 때문이다.
score 란?
elasticsearch
elasticsearch aaa
elasticsearch abbb
위와 같은 데이터가 있을 때 elasticsearch 문자를 검색하면 첫 번째 document 의 score가 높게 나온다. 이유는 문자가 정확하게 매칭되기 때문이다. 즉, score의 값은 문자열의 유사성에 따라 다르게 출력된다.
출처 : Elasticsearch in Action 도서
다음은 filter 검색에 대한 요청 결과이다.
결과의 json 데이터를 보면 _score 값이 1로 찍힌 것을 확인할 수 있다.
이처럼 filter 검색은 score 계산을 하지 않는다.
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 32 33 34 35 36 37 38 | curl -XGET 'http://localhost:9200/get-together/_search?pretty' -d '{ "query": { "filtered": { "filter": { "term": { "name": "clojure" } } } } }' { "took" : 4, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "hits" : { "total" : 1, "max_score" : 1.0, "hits" : [ { "_index" : "get-together", "_type" : "new-events", "_id" : "1", "_score" : 1.0, "_source" : { "name" : "Late Night with Elasticsearch", "name2" : "lng1982 Test", "name3" : "my name is namkyu Lee", "date" : "2013-10-25T19:00" } } ] } } | cs |
다음은 query 검색에 대한 요청 결과이다.
filter 검색과는 다르게 _score 값이 0.15342641 이 나온 것을 확인 할 수 있다.
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 32 33 34 | curl -XGET 'http://localhost:9200/get-together/_search?pretty' -d '{ "query": { "term": { "name": "elasticsearch" } } }' { "took" : 6, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "hits" : { "total" : 1, "max_score" : 0.15342641, "hits" : [ { "_index" : "get-together", "_type" : "new-events", "_id" : "1", "_score" : 0.15342641, "_source" : { "name" : "Late Night with Elasticsearch", "name2" : "lng1982 Test", "name3" : "my name is namkyu Lee", "date" : "2013-10-25T19:00" } } ] } } | cs |
'서버' 카테고리의 다른 글
[Elasticsearch] 클러스터 rolling restarts (0) | 2018.02.02 |
---|---|
[Elasticsearch] 은전한잎 설치 (0) | 2018.01.24 |
[Elasticsearch] 샤드 (Shard) (0) | 2017.12.20 |
[Elasticsearch] 최적화 (0) | 2017.12.20 |
[Elasticsearch] Query 검색 결과 구조 (0) | 2017.12.06 |
[Elasticsearch] 한번 정해진 mapping 속성은 변경 불가 (0) | 2017.12.05 |
[Elasticsearch] index 매핑 (analyzed, not_analyzed, no) (0) | 2017.12.01 |
[Elasticsearch] 모니터링 툴 (0) | 2017.11.30 |