<<해당 인덱스의 템플릿 조정>>

  • settings 
"settings" : {
      "index" : {
        "analysis" : {
          "analyzer" : {
            "korean" : {
              "type" : "custom",
              "tokenizer" : "seunjeon_default_tokenizer"
            }
          },
          "tokenizer" : {
            "seunjeon_default_tokenizer" : {
              "type" : "seunjeon_tokenizer",
              "index_eojeol" : "false",
              "decompound" : "false"
            }
          }
        }
      }
    }

 

  • mapping 

분석하고 싶은 필드값에 추가

 "contents" : {
          "type" : "text",
          "analyzer" : "korean"
        }

 

 

<<결과>>

다음과 같이 "강아지"로 리퀘스트를 보내 줬을 때, "강아지가 귀여워" 가 검색된닷

GET sample4/_search
{
  "query": {
    "match": {
      "contents": "강아지"
    }
  }
}
          "contents" : "강아지는 귀여워",
          "mdate" : "2020-02-03T15:00:06.000Z",
          "blocked_type" : 0,
          "category" : null,
          "view_yn" : 0,
          "contents_type" : 3

 

<<참고>>

1. analyzer와 search analyzer는 서로 다른 분석기로 설정 가능

2. "match" 쿼리: inverted index에 저장되는 토큰에서 "분석"하여 찾아줌 - "강아지"로 "강아지는 귀여워" 못찾는다

3. "term" 쿼리: inverted index에 저장되어 있는 토큰에서 찾아줌

+ Recent posts