[Elasticsearch] Multi fields 질의
Elastic/Elasticsearch 2016. 11. 1. 13:33요즘 추천 데이터 만드느라 도통 mapping 정보 설계나 dsl 작성을 안했더니 까먹기 일수내요.
그래서 그냥 기억하는 차원에서 가볍게 작성해 봅니다.
[참고문서]
https://www.elastic.co/guide/en/elasticsearch/reference/2.4/multi-fields.html
[설명]
- 예전에는 multi-field 라고 했고 지금은 fields 라고 합니다.
- fields 의 용도는 단일 field 에 여러가지 속성을 부여하고 싶을 때 사용을 합니다.
예를 들면)
- index:analyzed 로 선언을 했는데 정렬을 해야 할 경우.
- index:not_analyzed 로 선언을 했는데 같은 value로 fulltext 검색을 해야 할 경우.
보통은 index:analyzed 로 선언 하고 fields 로 index:not_analyzed 로 구성 하는게 많습니다.
[mappings 정보]
...중략...
"keyword": { "type":"string", "index":"analyzed", "analyzer":"edge_ngram_analyzer", "index_options":"docs", "norms": { "enabled":false },
"fields": {
"exact": {
"type":"string", "index":"not_analyzed", "store":"no"
}
}
},
...중략...
- 위 맵핑 정보는 제가 자동완성에서 사용하는 정보를 일부 발췌한 내용입니다.
[query dsl]
{
"query": {
"term": {
"keyword.exact": "향수"
}
}
}
- 질의는 위에서와 같이 .(dot) 을 이용해서 field 명을 사용하시면 됩니다.