ABOUT ME

끄적끄적 개발 노트

Today
Yesterday
Total
  • 동의어 사전 다중 등록 테스트 (Elasticsearch v6.5.4)
    검색/ElasticSearch 2021. 8. 26. 14:05
    반응형

    목적

    nori analyzer의 동의어 등록 방식은 “a,b,c”와 “a=>b” 두가지가 있다.
    위 동의어 키워드는 synonyms.txt 파일에 작성하여 indices 생성에 사용한다.

    사전 관리시스템을 만들면서,
    우리는 “a,b,c” 방식을 동의어, “a=>b” 방식을 유사어 사전이라고 분리했다.

    분리한, 동의어와 유사어 사전이 각각 배포 및 적용이 가능한지 테스트한다.

    • indices 생성시 filter 에 동의어,유사어 필터를 각각 생성 할 수 있는지 확인한다.
    • synonym.txt, similar.txt 사전을 생성 후 각각의 사전이 적용 되는지 확인한다.

    테스트 indices생성

    • filtersynonym 타입의 동의어와 유사어 필터를 각각 생성한다.
    PUT dic_synonym_test/
    {
      "mappings" : {
        "_doc" : {
          "dynamic":"strict",
          "properties":{
            "title" : {
              "type" : "text",
              "analyzer":"korean"
            }
          }
        }
      },
      "settings":{
        "index":{
          "analysis":{
            "filter":{
                  "synonym":{
                  "type":"synonym",
                  "synonyms_path":"dic/synonyms.txt",
                  "updateable":"true"
                  },
                  
                  "similar":{
                  "type":"synonym",
                  "synonyms_path":"dic/similar.txt",
                  "updateagble":"ture"
                 }
            },
            "analyzer":{
              "korean":{
                "filter":[
                    "synonym",
                    "similar"
                  ],
                  "type":"custom",
                  "tokenizer" : "korean_default_tokenizer"
              }
            },
            "tokenizer":{
              "korean_default_tokenizer":{
                "type":"nori_tokenizer",
                "user_dictionary":"userdict_ko.txt",
                "decompund_mode":"mixed"
              }
            }
          }
        }
      }
    }

    사전 등록

    • 3대의 노드에 모두 dic/synonyms.txt, dic/similar.txt 파일을 생성한다.

    테스트 데이터 삽입

    PUT dic_synonym_test/_doc/1
    {
      "title":"선블록"
    }
    
    PUT dic_synonym_test/_doc/2
    {
      "title":"폼클렌징"
    }

    검색결과 확인

    결론

    동의어 필터를 여러개 세팅 하는 것이 가능하다.

    반응형
Designed by Tistory.