[Elasticsearch] Analyzer filter 구성 시 순서.

Elastic/Elasticsearch 2016. 4. 22. 11:42

아주 기본적인 내용인데 간혹 놓치고 가는 경우가 있어서 기록해 봅니다.

저 같은 경우는 synonyms 적용하면서 당연히 적용된 줄 알고 테스트 하다 삽질한 경우 입니다.


analyzer 구성은 잘 아시겠지만 settings 에서 수행하게 됩니다.

그리고 설정한 analyzer 를 mappings 에서 사용을 하게 되구요.


설정 방법에 대해서는 아래 문서 참고 하시기 바랍니다.


참고문서)

https://www.elastic.co/guide/en/elasticsearch/reference/2.3/analysis.html


참고문서 내 설정 예시)

index : analysis : analyzer : standard : type : standard stopwords : [stop1, stop2] myAnalyzer1 : type : standard stopwords : [stop1, stop2, stop3] max_token_length : 500 # configure a custom analyzer which is # exactly like the default standard analyzer myAnalyzer2 : tokenizer : standard filter : [standard, lowercase, stop] tokenizer : myTokenizer1 : type : standard max_token_length : 900 myTokenizer2 : type : keyword buffer_size : 512 filter : myTokenFilter1 : type : stop stopwords : [stop1, stop2, stop3, stop4] myTokenFilter2 : type : length min : 0 max : 2000



위 예시를 가지고 설명을 드리면, myAnalyzer2 설정에 filter : [standard, lowercase, stop] 으로 정의가 되어 있습니다.

즉, filter 적용 순서가

1. standard

2. lowercase

3. stop

으로 적용이 된다고 보시면 됩니다.


아주 간단하죠.

제가 설정 순서를 잘못해 놓고 왜 안되지 하고 있었습니다. ㅡ.ㅡ;

: