2023-09-20 21:45:54

opensearch에서 text 필드를 활용해서 term 서치를 진행하는데, 필드의 값에 하이픈(-)이 들어가 있는 경우에는 검색이 잘 안 되는 경우가 있습니다. 이럴 때는 해당 필드 뒤에 .keyword를 붙여주고 나면, 정상적으로 검색이 됩니다. text 필드에 대해 term 서치를 하려면 .keyword를 붙여줘야 합니다. 

 

검색 실패 버전

{
    "query": {
            "term": {
                    "car_model": "제네시스-G80"
                }
        }
}

 

검색 성공 버전

{
    "query": {
            "term": {
                    "car_model.keyword": "제네시스-G80"
                }
        }
}

 

car_model이라는 필드명 다음에 .keyword를 붙여줬더니 텍스트에 하이픈이 포함되어 있어도 잘 검색이 됩니다.   

 

참고자료

[1] https://stackoverflow.com/questions/11566838/elastic-search-hyphen-issue-with-term-filter   

[2] https://blog.voidmainvoid.net/314  

[3] https://esbook.kimjmin.net/07-settings-and-mappings/7.2-mappings/7.2.1

'DB > Elasticsearch' 카테고리의 다른 글

[OpenSearch] term, terms, wildcard 쿼리 비교 정리  (0) 2023.09.26