본문 바로가기

프로그래밍/Elasticsearch3

[elastic search] n-gram 을 통한 부분 단어 검색 n-gram analyzer 를 사용하여 일부 단어를 통해 원하는 검색 결과를 찾는 방법을 한 번 살펴보자. 먼저 아래와 같은 구조로 인덱스를 생성하고자 한다. es 데이터 예시 { "_source" : { "data": { "essential" : { "person" : { "name" : { "first" : "johnny", "last" : "wang" }, "birth" : { "date" : "2020.01.01" }, "introduce" : { "self" : "안녕하세요. 반갑습니다. 조니 왕입니다." } } } } } } 인덱스의 필드 중 "_source.data.essential.person.name.first"와 "_source.data.essential.person.introduce.. 2021. 1. 24.
[elastic search] mapping 데이터 수정을 위한 reindex 2020/12/22 - [프로그래밍/elastic search] - [elastic search] 정규식으로 string replace 하기(_update_by_query) 왜 mapping 데이터를 수정하는 단계까지 오게 되었는지는 이전 글을 확인! text 타입의 데이터 필드를 date 타입으로 변경하고 싶은데, 이 필드만 update 쿼리를 통해서 date타입으로 바꿀 수는 없을까???^0^??? 안됨. 아무리 찾아도 없다. 안된다..ㅠ 한 번 설정한 mapping을 변경하고자 한다면, 내가 원하는 데이터 타입으로 설정된 빈 테이블(index)를 하나 새로 생성한 뒤 기존의 테이블 테이터를 새 테이블에 그대로 옮겨담는 reindex 작업이 필요하다. 테이블 전체를 옮기는 것이기 때문에 데이터가 많이.. 2021. 1. 21.
[elastic search] 정규식으로 string replace 하기(_update_by_query) elastic search에 '2020.01.01' 과 같이 날짜 string 형식으로 등록된 필드가 있었는데, 범위 검색과 정렬을 위해서 date 데이터 타입으로 변환해주고자 하였다. esbook.kimjmin.net/07-settings-and-mappings/7.2-mappings/7.2.3-date 위의 사이트에 따르면 "2019-06-12" "2019-06-12T17:13:40" "2019-06-12T17:13:40+09:00" "2019-06-12T17:13:40.428Z" 이와 같은 형식으로 데이터 저장 시 자동으로 date type으로 인식되어 저장된다고 한다. 그래서 현재 '2020.01.01'로 저장된 데이터를 '2020-01-01' 형식으로 update 하고자 하였다. 하지만 결과적으.. 2020. 12. 22.