일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 오버로딩
- overriding
- Elasticsearch
- Overloading
- java
- elastic certified engineer
- 상속
- dlfks
- 오버라이딩
- 버전관리
- git
- 형상관리
- Today
- Total
목록개인 프로젝트 (5)
엔지니어 블로그
Elasticsearch로 검색기능 구현 -4 에서는 각 필드에 알맞은 분석기를 적용해 원하는 형태의 토큰이 나오는 것을 확인했다. mapping과 indexing이 끝났으니 검색을 위한 search template을 구성할 것이다. search template란 검색이 유용하도록 미리 검색 형태를 지정해 두는 기능이다. 미리 query를 정해두고 필요할 때 마다 검색어만 입력하면 검색이 가능하다. search template을 정의하기 위해서는 다음과 같은 형태로 시작하게 된다. test_template 부분이 template의 이름이 된다. 이후로는 일반적인 쿼리와 동일하게 작성해 주게 되는데, 일반적인 쿼리와의 차이점은 검색어의 입력이다. 일반적으로 query를 사용해서 검색할 때는 "field" ..
지난 Elasticsearch로 검색기능 구현 -3 에서는 각 field를 원하는 type으로 mapping 하는 작업까지 완료했다. 이제는 각 field를 검색 조건으로 사용하기 위해 적절한 analyzer를 적용해볼 것이다. 1. 주소 analyze 우선, 원하는 검색의 형태는 다음과 같다. 전체 주소로 검색했을 때 검색이 가능한가? "서울시 봉익동" 으로 검색했을 때 검색이 가능한가 ? "서울시 종로구 봉익동" 으로 검색했을 때 검색이 가능한가 ? "종로구 봉익동" 으로 검색했을 때 검색이 가능한가 ? "봉익동" 으로 검색했을 때 검색이 가능한가 ? "서울 봉익동" 으로 검색했을 때 검색이 가능한가? 위의 검색 경우의 수를 모두 만족시키기 위해 nori analyzer를 활용할 것이다. "addr"..
더보기 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는 d..
지난 과정에서는 전처리를 해서 원하는 형태의 csv를 만들었다. 이번에는 완성된 data를 Ls를 통해 출력해 봤다. input { file { path => "C:/logstash-7.10.1/config/seoul_data/seoul4.csv" start_position => "beginning" sincedb_path => "nul" } } filter { csv{ separator => "," skip_header => true columns => ["name","site_nm","middle_cate","detail_cate","cate","addr","load_addr","floor","date"] } #1 dissect{ mapping => {"addr" => "%{state} %{city}..
서울시 상가 정보 데이터로 검색 기능을 구현하는 프로젝트를 진행한다. 1.데이터 전처리 우선 빅데이터 포털에서 csv로 된 raw data를 다운받아 columns를 확인해 봤다. pandas를 사용해서 30개가 넘는 columns 중 필요한 것만 남기고 모조리 삭제했다. logstash로 필터링해서 가져오고 싶었지만 data의 크기가 너무 커서 부담스러운 작업이었기 때문이다. 이렇게 필요한 columns만 남긴 후 내부의 data들을 살펴봤다. 눈에 띄는 것은 지점 명과 층 정보에 보이는 null값이었다. null값은 Es에서 mapping 하면서 해결할 수 있을 것 같아 시도해 보았다. #default_value 값을 설정해서 해결 시도 floor : { "type" : "integer", "null..