(ElasticSearch) analyzed와 not_analyzed의 차이점
다음과 같이 new-events 타입을 인덱스한다고 해보자
PUT get-together/_mapping/new-events
{
"properties" : {
"name" : {
"type" : "text",
"index" : "analyzed"
}
}
}
index의 기본값은 analyzed인데,
만약 해당 필드에 있는 값이 "Last night with ElasticSearch"라고 하면
analyzed인 경우는 해당 문장을 단일 텀으로 변경하여 색인 한다.
즉, "last" , "night", "with", "elastisearch"이다.
만약 not_analyzed인 경우는 단일 텀으로 만들지 않고, 전체 문자열을 단일 텀으로 색인한다.
태그 검색 처럼 정확히 일치하는 경우 사용한다. 예를 들어, "big data"인 경우는
"big data"자체가 색인된다.
만약 index 가 no인 경우는 색인을 생략하고 어떠한 텀도 만들지 않아서 특정 필드의 검색이 불가능 할 것이다. 검색할 필요가 없는 경우는 이 옵션을 사용하면 공간의 절약과 색인 및 검색에 필요한 시간도 절약할 수 있을 것이다.
예를들어, 이벤트의 리뷰를 저장한다고 하자. 비록 이 리뷰를 저장하고 보여주는 것이 가치가 있어도 검색할 필요까지는 없을 것이다. 이 경우 그 필드의 색인을 비활성화 함으로써 색인 과정을 더 빠르게 만들고 저장 공간도 절약할 것이다.
PUT get-together/_mapping/new-events
{
"properties" : {
"name" : {
"type" : "text",
"index" : "analyzed"
}
}
}
index의 기본값은 analyzed인데,
만약 해당 필드에 있는 값이 "Last night with ElasticSearch"라고 하면
analyzed인 경우는 해당 문장을 단일 텀으로 변경하여 색인 한다.
즉, "last" , "night", "with", "elastisearch"이다.
만약 not_analyzed인 경우는 단일 텀으로 만들지 않고, 전체 문자열을 단일 텀으로 색인한다.
태그 검색 처럼 정확히 일치하는 경우 사용한다. 예를 들어, "big data"인 경우는
"big data"자체가 색인된다.
만약 index 가 no인 경우는 색인을 생략하고 어떠한 텀도 만들지 않아서 특정 필드의 검색이 불가능 할 것이다. 검색할 필요가 없는 경우는 이 옵션을 사용하면 공간의 절약과 색인 및 검색에 필요한 시간도 절약할 수 있을 것이다.
예를들어, 이벤트의 리뷰를 저장한다고 하자. 비록 이 리뷰를 저장하고 보여주는 것이 가치가 있어도 검색할 필요까지는 없을 것이다. 이 경우 그 필드의 색인을 비활성화 함으로써 색인 과정을 더 빠르게 만들고 저장 공간도 절약할 것이다.
댓글
댓글 쓰기