본문 바로가기

엘라스틱서치9

엘라스틱서치와 추천 - More Like This 쿼리 원문(7.14): https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-mlt-query.html#_how_it_works More like this 쿼리 The More Like This Query finds documents that are "like" a given set of documents. In order to do so, MLT selects a set of representative terms of these input documents, forms a query using these terms, executes the query and returns the results. The user controls th.. 2021. 9. 20.
레퍼런스] 엘라스틱서치란 무엇인가? 엘라스틱서치란 무엇인가? 엘라스틱 서치란 무엇인가? 엘라스틱서치는 분산 시스템으로 구현된 검색 및 분석 엔진이며, 엘라스틱 스택에서의 가장 중요한 부분이다. 로그스태시 및 비츠는 데이터를 수집하고, 집계하며 데이터를 가공하고 저장하는데 도움을 준다. 키바나를 사용하여 데이터를 탐색하고 시각화하고 관리 및 모니터할 수 있다. 이처럼 엘라스틱서치는 데이터를 저장하고 검색하고 분석할 수 있는 정말 좋은 툴이다. 엘라스틱서치를 사용하여 모든 종류의 데이터를 실시간에 근접하게 검색하고 분석할 수 있다. 엘라스틱 서치는 구조화된 데이터든, 그냥 평문이든, 혹은 숫자나 지리 데이터라도 효율적으로 빠른 저장과 검색 기능을 지원한다. 데이터의 트렌드와 패턴을 알기 위해 단순한 검색과 집계 보다 훨씬 많은 것을 할 수 있.. 2021. 9. 15.
7. 인덱스 설정과 매핑 7. 인덱스 설정과 매핑 데이터의 저장 및 검색 방법에 대한 설정이나 사용자 정의 애널라이저는 인덱스 단위로 저장된다. 7.1 설정 - Settings 인덱스는 두 개의 정보 단위, settings 와 mappings로 이루어진다. settings 또는 mappings 를 보는 보는 방법은 각각 _settings API 나 _mappings API를 사용한다. 대부분의 설정은 한 번 지정하면 변경할 수 없다. 샤드와 복제본 수 설정 number_of_shards와 number_of_replicas 라는 이름으로 "settings" - "index" 아래에 설정한다. PUT my_index { "settings": { "index": { "number_of_shards": 3, "number_of_repl.. 2021. 9. 6.
6. 데이터 색인과 텍스트 분석 6. 데이터 색인과 텍스트 분석 풀텍스트 검색을 위해서는 원본 데이터를 검색에 맞게 가공해야 한다. 엘라스틱서치는 데이터를 저장하면서 데이터를 가공한다. 6.1 역인덱스 Full text 검색을 할 때는 역인덱스 구조가 유리하다. key는 term으로, value는 해당 term을 저장하고 있는 문서 번호를 저장한다. 역인덱스는 데이터가 저장될 때 만들어진다. 따라서 엘라스틱서치에서 데이터를 저장하는 과정을 인덱싱(색인)이라고 한다. 6.2 텍스트 분석 텍스트 분석: 원본 데이터로부터 검색어 토큰을 만들어서 저장하는 과정이다. 텍스트 분석 결과는 검색에만 사용되지, 원본 데이터는 변경되지 않는다. 애널라이저: 텍스트 분석을 담당하는 모듈이다. 캐릭터 필터: 전체 문장에서 특정 문자를 제거한다. 애널라이저.. 2021. 9. 6.
5. 검색과 쿼리 5. 검색과 쿼리 - Query DSL 검색: 수많은 대상 데이터 중에서 조건에 부합하는 데이터로 범위를 축소하는 행위 엘라스틱서치 Query DSL은 JSON 형식이다. 1) 풀텍스트 쿼리 match_all: 조건없이 해당 인덱스의 모든 도큐먼트를 검색한다. 쿼리 없이 실행하는 것과 같은 결과를 되돌려준다. GET my_index/_search { "query":{ "match_all":{ } } } match 검색에 사용되는 일반적인 쿼리 기본적으로 띄어쓰기는 OR 조건으로 검색되나, operator 옵션으로 변경할 수 있다. GET my_index/_search { "query": { "match": { "message": "quick dog" # field: value 형태 } } } GET my.. 2021. 9. 5.
4. 데이터 처리 4. 데이터 처리 엘라스틱서치는 검색, 저장, 설정 등 모든 정보를 JSON 도큐먼트 형식으로 주고받는다. 엘라스틱서치는 자원별로 고유한 URL을 매핑해서 사용한다. REST API를 활용해 CRUD가 가능하다. curl 명령어나 postman, kibana devtools를 사용할 수 있다. (키바나 포트는 5601) CRUD 도큐먼트를 접근할 때는 /_doc/ 처럼 고정자 _doc 을 사용한다. curl -XPUT "http://localhost:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d' (d는 데이터 입력 옵션) 데이터를 입력할 때는 PUT 메서드를 사용한다. PUT 메서드 사용시 아이디는 자동으로 생성되지 않는다. PUT my_i.. 2021. 8. 31.
3. 시스템 구조 3. 시스템 구조 엘라스틱서치는 항상 클러스터로 동작한다. 1개의 노드만 있어도 클러스터로 구성된다. 클러스터 구성 9200~9299: 클라이언트와 통신하기 위한 http 포트 9300~9399: 노드 간 데이터를 교환하기 위한 tcp 포트 물리 서버마다 하나의 노드를 실행하는 것을 권장한다. 같은 물리 서버 내라고 해도 cluster.name이 같아야 같은 클라이언트로 인식한다. bin/elasticsearch -Ecluster.name=~ -Enode.name=~ 으로 실행 시 옵션을 지정한다. 엘라스틱서치 실행 후 로그에서 포트 바인딩 정보를 확인할 수 있다. 모든 클러스터에는 반드시 하나의 마스터 노드가 존재한다. 디스커버리 같은 서버, discovery.seed_hosts에 설정된 네트워크 상의.. 2021. 8. 31.