데이터베이스/엘라스틱서치 6

elasticsearch. 노리 분석기 [엘라스틱 스택 개발부터 운영까지]

한글을 분석하기 위해선 한글 어휘의 기본 단위인 형태소 단위로 분석해주는 전용 플러그인을 설치해 사용하게 된다. 과거에는 공식 지원되는 플러그인이 없어 아리랑, 은전한닢 등의 커뮤니티 플러그인을 사용했으나, 성능이나 호환성 측면에서 엘라스틱서치 6.4 버전부터 공식 지원되는 노리Nori 사용을 권장한다. 노리 분석기 설치 1. 설치하기 위해서는 elasticsearch-plugin이 설치되어 있는 경로를 확인해야한다. 나는 brew를 통해 설치했고, /opt/homebrew/Cellar/elasticsearch-full/7.17.4/bin 여기에 존재했다. elasticsearch. elasticsearch / kibana 설치 (맥 os) 1. elasticsearch install brew tap e..

elasticsearch. range query 와 bool query [엘라스틱 스택 개발부터 운영까지]

범위 쿼리 range query - 특정 날짜나 숫자의 범위를 지정해 범위 안에 포함된 데이터들을 검색할 때 사용된다. - 날짜/숫자/IP 타입의 데이터는 범위 쿼리가 가능하지만, 문자형, 키워드 타입의 데이터에는 범위 쿼리를 사용할 수 없다. GET kibana_sample_data_flights/_search { "query": { "range": { "timestamp": { "gte": "2020/12/15", "lte": "2020/12/16" } } } } 참고로, 날짜/시간 포맷이 맞아야 검색이 가능하므로, '2020-12-15', '2020-12-16'으로 검색 시 결과가 나오지 않는다. gte (gte: 10) 10과 같거나 10 보다 큰 값 (gte: 2021-01-21) 2021년 1..

elasticsearch. leaf query (match, term, range) [엘라스틱 스택 개발부터 운영까지]

엘라스틱서치는 크게 리프 쿼리 leaf query와 복합 쿼리 compound query로 나눌 수 있다. - leaf query는 특정 필드에서 용어를 찾는 쿼리로, 매치 match 용어 term 범위 range 쿼리 등이 있다. - compound query는 쿼리를 조합해 사용되는 쿼리로, 논리 bool 쿼리 등이 있다. [ leaf query ] 전문 쿼리 full text query와 용어 수준 쿼리 term level query의 차이점 - full text query는 전문 검색을 하기 위해 사용되며, 전문 검색을 할 필드는 인덱스 매핑 시 텍스트 타입으로 매핑해야 한다. > 텍스트 타입 필드에서 검색어를 찾을 때 사용한다. > 분석기가 텍스트를 토큰화해서 전문 검색이 가능하다. - term..

elasticsearch. 역인덱싱과 분석기 [엘라스틱 스택 개발부터 운영까지]

엘라스틱서치는 전문 검색을 지원하기 위해 역인덱싱 기술을 사용한다. 전문 검색은 장문의 문자열에서 부분 검색을 수행하는 것이며, 역인덱싱은 장문의 문자열을 분석해 작은 단위로 쪼개어 인덱싱하는 기술이다. 역인덱싱을 이용한 전문 검색에서 양질의 결과를 얻기 위해서는 문자열을 나누는 기준이 중요하며, 이를 지원하기 위해 엘라스틱 서치는 캐릭터 필터, 토크나이저, 토큰 필터로 구성되어 있는 분석기 모듈을 갖고 있다. - 분석기에는 하나의 토크나이저가 반드시 포함돼야 하며, 캐릭터 필터와 토큰 필터는 옵션이므로 없어도 되고 여러 개를 함께 사용해도 된다. 분석기 구성 구성요소 설명 캐릭터 필터 입력받은 문자열을 변경하거나 불필요한 문자들을 제거한다 토크나이저 문자열을 토큰으로 분리한다. 분리할 때 토큰의 순서나..

elasticsearch. 문자열 타입 (텍스트 타입 / 키워드 타입 / 멀티 타입) [엘라스틱 스택 개발부터 운영까지]

엘라스틱서치 5.x 버전부터 문자열 타입이 텍스트와 키워드라는 두 가지 타입으로 분리되었다. >> 텍스트 타입 - 일반적으로 문장을 저장하는 매핑 타입으로 사용한다. - 텍스트 타입으로 지정된 문자열은 분석기에 의해 토큰으로 분리되고, 이렇게 분리된 토큰들은 인덱싱되는데 이를 역인덱싱이라고 한다. - 역인덱싱된 용어 중 하나라도 포함되면 도큐먼트를 찾는다. - 텍스트 타입의 경우 기본적으로 집계나 정렬을 지원하지 않으며, 매핑 파라미터로 집계나 정렬을 지원할 수 는 있으나 메모리를 많이 사용한다는 단점이 있다. - 텍스트 타입으로 지정된 필드를 정렬할 경우 문장의 첫 문자열이 아닌 분해된 용어를 기준으로 정렬을 수행하므로 예상과는 다른 결과를 얻게 된다. # text 타입 가진 text_index 인덱스..

elasticsearch. elasticsearch / kibana 설치 (맥 os)

1. elasticsearch install brew tap elastic/tap brew install elasticsearch-full 설치 완료되었으면 elasticsearch 명령어 통해 실행한다. 실행 후, curl -XGET localhost:9200 통해서 아래와 같이 나오면, 실행된 것이다. 2. kibana install brew tap elastic/tap brew install kibana-full 설치 완료되었으면 kibana 명령어 통해 실행한다. 실행 후, http://localhost:5601/ 로 접속하면 아래와 같은 홈화면이 뜬다. 홈화면은 버전마다 다를 수 있다. Elastic Search / kibana 설치 (맥os) 1. homebrew 설치하기 https://www..

반응형