[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
으로 적용이 된다고 보시면 됩니다.
아주 간단하죠.
제가 설정 순서를 잘못해 놓고 왜 안되지 하고 있었습니다. ㅡ.ㅡ;