다음은 type에 대한 mapping 샘플이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | curl -XPUT 'localhost:9200/get-together/_mapping/new-events' -d '{ "new-events": { "properties": { "name": { "type": "string", "index": "analyzed" }, "name2": { "type": "string", "index": "not_analyzed" }, "name3": { "type": "string", "index": "no" } } } }' | cs |
index 매핑에는 3가지의 옵션이 올 수 있다.
analyzed
검색 가능하도록 색인
analyzer를 이용한 tokenized 수행을 통해 색인
ex) "this is my test a sentence" 라는 string이 주어졌을 때 analyzer를 통과하면 다음과 같이 분리된다.
1 2 3 4 5 6 | this is my test a sentence | cs |
다음과 같이 elasticsearch로 요청을 보내어 어떻게 string이 분석되는지 알 수 있다.
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 39 40 | $ curl -XGET 'localhost:9200/_analyze?analyzer=standard&pretty' -d 'this is my test a sentence' { "tokens" : [ { "token" : "this", "start_offset" : 0, "end_offset" : 4, "type" : "<ALPHANUM>", "position" : 0 }, { "token" : "is", "start_offset" : 5, "end_offset" : 7, "type" : "<ALPHANUM>", "position" : 1 }, { "token" : "my", "start_offset" : 8, "end_offset" : 10, "type" : "<ALPHANUM>", "position" : 2 }, { "token" : "test", "start_offset" : 11, "end_offset" : 15, "type" : "<ALPHANUM>", "position" : 3 }, { "token" : "a", "start_offset" : 16, "end_offset" : 17, "type" : "<ALPHANUM>", "position" : 4 }, { "token" : "sentence", "start_offset" : 18, "end_offset" : 26, "type" : "<ALPHANUM>", "position" : 5 } ] } | cs |
출처 : Elasticsearch in Action 도서
not_analyzed
검색 가능하도록 색인 (정확한 값 일치)
analyzer를 이용하지 않기 때문에 색인 속도가 빠르다.
분석이 필요 없는 경우 사용
ex) "big data" 라는 string이 주어졌을 때 "big data" 로 검색해야 문서가 출력된다.
no
색인하지 않음
검색 불가능
검색 결과에 포함되어 출력만 가능
기타
1 2 | The other simple types (such as long, double, date etc) also accept the index parameter, but the only relevant values are no and not_analyzed, as their values are never analyzed. | cs |
https://www.elastic.co/guide/en/elasticsearch/guide/current/mapping-intro.html#_index_2
simple types 들은 기본적으로 analyzed 되지 않는다. (default : not_analyzed)
'서버' 카테고리의 다른 글
[Elasticsearch] 최적화 (0) | 2017.12.20 |
---|---|
[Elasticsearch] filter 조회가 query 조회보다 빠르다. (0) | 2017.12.11 |
[Elasticsearch] Query 검색 결과 구조 (0) | 2017.12.06 |
[Elasticsearch] 한번 정해진 mapping 속성은 변경 불가 (0) | 2017.12.05 |
[Elasticsearch] 모니터링 툴 (0) | 2017.11.30 |
[Elasticsearch] 클러스터 구성 (2) | 2017.11.30 |
[Elasticsearch] 용어 정리 (0) | 2017.11.29 |
Apache2 설치 (Ubuntu 16.04) (0) | 2017.09.15 |