엔지니어 블로그

Elasticsearch로 검색기능 구현 -3 본문

개인 프로젝트/Elk 검색기능 구현 프로젝트

Elasticsearch로 검색기능 구현 -3

안기용 2022. 4. 1. 09:16

1. mapping type 정하기

데이터의 전처리는 끝났고 Ls로도 출력을 해봤으니 Es에 indexing을 할 차례다.

 

indexing 하기 전, index template를 사용하기 위해 미리 field의 mapping을 지정해 줘야 한다. 

 

각 filed를 살펴보면 ["name","site_nm","middle_cate","detail_cate","cate","addr","load_addr","floor","date","timestamp"] 이렇게 구성되어 있다. 

 

먼저 site_nm(지점명) 은 keyword type으로 지정해서 filter context를 사용할 것이다. 

 

cate 항목들과 addr(주소), name(상호명)은 text type으로 지정하고, date,timestamp는 date type으로 지정해서 query context를 사용할 것이다. 

 

그리고 Ls dissect filter를 이용해서 addr field에서 시,구,동 항목을 따로 분리해 keyword 항목으로 지정해 뒀다.

 "mappings": {
    "properties": {
      "name" : {
        "type" : "text"
      },
      
     ...
     
      "floor" : {
        "type" : "keyword"
      },
      "date" : {
        "type" : "date",
        "format" : "yyyy/MM/dd||epoch_millis"
      },
      "@timestamp" : {
        "type" : "date",
        "format" : "yyyy-MM-dd HH:mm:ss.S||date_optional_time"
      }
    }
  }
}

2. 검색해서 확인해 보기

위처럼 mapping을 지정하고 indexing을 진행한 후 GET index/_search API를 입력하면 아래와 같이 indexing이 성공적으로 완료된 것을 볼 수 있다.