루씬을 사용하는 ES는 루씬 스코어링 과정을 따른다. 따로 analyzer를 구현해서 사용하는 터라 특정 필드에 매칭되서 얼마의 scoring이 되는가를 확인하기 위해서 explain 을 사용할 수 있다. RDB의 explain과 비슷하게 scoring 절차, 결과를 볼 수 있다.
query 을 활용 한 curl 쿼리
curl -XGET 'localhost:9200/twitter/tweet/1/_explain' -d '{ "query" : { "term" : { "message" : "search" } } }'
query_string을 활용 한 curl 쿼리
curl -XGET 'localhost:9200/twitter/tweet/1/_explain?q=message:search'
"query_string": {
"query": "content:this AND available:yes"
}
이런식도 가능
"query_string": {
"query": "content:this OR that"
}
Json query
{ "explain": true, "query" : { "term" : { "user" : "kimchy" } } }
결과 json
{ "matches" : true, "explanation" : { "value" : 0.15342641, "description" : "fieldWeight(message:search in 0), product of:", "details" : [ { "value" : 1.0, "description" : "tf(termFreq(message:search)=1)" }, { "value" : 0.30685282, "description" : "idf(docFreq=1, maxDocs=1)" }, { "value" : 0.5, "description" : "fieldNorm(field=message, doc=0)" } ] } }
'프로그래밍 > ElasticSearch' 카테고리의 다른 글
[Elasticsearch] 플러그인 설치 with jar (0) | 2015.07.09 |
---|---|
[Elasticsearch] StringOutofIndex 에러 (0) | 2015.07.09 |
[Elasticsearch] elasticsearch analyze결과 보기 (0) | 2015.06.13 |
[Elasticsearch] Custom analyzer plugin 만들기 (0) | 2015.05.28 |
[Elasticsearch] 샤드, 레플리카 갯수 설정 (0) | 2015.05.28 |