diff --git a/_posts/elk/2021-02-08-ELK-Elastic-Search4.md b/_posts/elk/2021-02-08-ELK-Elastic-Search4.md index e7d4d52..a6a4bc0 100644 --- a/_posts/elk/2021-02-08-ELK-Elastic-Search4.md +++ b/_posts/elk/2021-02-08-ELK-Elastic-Search4.md @@ -536,8 +536,27 @@ term 쿼리 사용법은 아래와 같다. } ``` -`term 쿼리 사용시 주의사항은 역색인에 명시된 문자열을 찾으므로 Bristol 문자열에 대해선 찾을 수 없다. ES에서 -분석기를 거쳐 역색인 될 때 lowercase 처리를 하기 때문이다.` +`term 쿼리 사용시 주의사항은 역색인에 명시된 문자열을 찾는 다는 것을 꼭 기억해야 한다.` + +위 예제에서 bristol 문자열로 역색인이 되기 때문에 Bristol 문자열에 대해선 찾을 수 없다. + +address의 원본 데이터가 Bristol 라면, text 타입의 경우는 기본적으로 lowercase 되어 역색인 된다. +keyword 타입의 경우는 기본적으로 동일한 값이 역색인 된다. + +따라서, 위 쿼리에서 text 타입을 Bristol로 검색을 시도하면 검색되지 않는다. +대소문자를 구분하여 정확한 검색이 필요하다면 아래와 같이 keyword 검색을 +해야 한다. + + +``` +"query": { + "term": { + "address.keyword": "Bristol" + } +} +``` + + ### 4-5) terms diff --git a/_posts/elk/2021-02-10-ELK-Elastic-Analyzer.md b/_posts/elk/2021-02-10-ELK-Elastic-Analyzer.md index 0407fbe..13d363f 100644 --- a/_posts/elk/2021-02-10-ELK-Elastic-Analyzer.md +++ b/_posts/elk/2021-02-10-ELK-Elastic-Analyzer.md @@ -340,10 +340,10 @@ POST my-index/_termvectors/<document_id> "offsets": true } -# term_statistics: 토큰의 전역 빈도와 문서 수를 반환 -# field_statistics: 필드의 전체적인 통계를 반환 -# positions: 토큰의 위치 정보를 반환 -# offsets: 토큰의 시작 및 끝 위치를 반환 +-- term_statistics: 토큰의 전역 빈도와 문서 수를 반환 +-- field_statistics: 필드의 전체적인 통계를 반환 +-- positions: 토큰의 위치 정보를 반환 +-- offsets: 토큰의 시작 및 끝 위치를 반환 ```