일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- TensorFlow
- MySQL
- Elasticsearch
- matplotlib
- 파이썬
- Python
- 900gle
- sort
- aggregation
- aggs
- zip 파일 암호화
- query
- plugin
- zip 암호화
- Mac
- Test
- License
- token filter test
- Java
- license delete
- Kafka
- API
- 차트
- springboot
- analyzer test
- high level client
- licence delete curl
- flask
- docker
- ELASTIC
- Today
- Total
목록ElasticStack/Elasticsearch (87)
개발잡부
전체 클러스터 재시작 및 순차적 재시작 전체 클러스터 다시 시작 또는 롤링 다시 시작을 수행하려는 상황이 있을 수 있습니다 . 전체 클러스터 재시작 의 경우 클러스터의 모든 노드를 종료하고 다시 시작하는 반면 , 롤링 재시작 의 경우 한 번에 하나의 노드만 종료하므로 서비스가 중단되지 않습니다. 전체 클러스터 다시 시작 1. 샤드 할당을 비활성화합니다. Disable shard allocation. 노드를 종료하면 할당 프로세스는 index.unassigned.node_left.delayed_timeout해당 노드의 샤드를 클러스터의 다른 노드에 복제하기 시작하기 전에(기본적으로 1분) 기다립니다. 이 작업에는 많은 I/O가 포함될 수 있습니다. 노드가 곧 다시 시작될 예정이므로 이 I/O는 필요하지 않..
normalizer - keyword 필드는 애널라이저를 사용하지 않는 대신 노멀라이저(normalizer) 의 적용이 가능 - 노멀라이저는 애널라이저와 유사하게 settings 에서 정의하며 토크나이저는 적용할 수 없고 캐릭터 필터와 토큰 필터만 적용해서 사용이 가능함 실무 적용 케이스 요구사항 대소문자 구분 없이 검색 가능 띄어쓰기 상관없이 검색가능 대소문자, 띄어쓰기 상관없이 exact 매칭 테스트 ) normalizer 가 세팅된 index 생성 searchWord 필드에 doo_normalizer 맵핑 PUT doocoo { "settings": { "analysis": { "normalizer": { "doo_normalizer": { "type": "custom", "char_filter":..
빠른 요약 multi_match 쿼리 구조는 analyzer 의 영향을 받는다 쿼리 유형 multi_match 쿼리가 내부적으로 실행되는 방식은 다음과 같이 설정할 수 있는 매개변수에 multi_match따라 다릅니다 best_fields ( 기본값 ) 모든 필드와 일치하지만 _score가장 적합한 필드의 문서를 사용하는 문서를 찾습니다. most_fields 모든 필드와 일치하는 문서를 찾아 _score각 필드의 문서를 결합합니다. cross_fields analyzer필드를 하나의 큰 필드인 것처럼 동일하게 처리합니다 . 모든 필드 에서 각 단어를 찾습니다 phrase match_phrase각 필드에 대해 쿼리를 실행 하고 _score 가장 적합한 필드를 사용합니다 phrase_prefix match..
페이지 캐시 - 쿼리에서 실제로 읽은 이 데이터의 양에 관계없이 데이터를 캐시 페이지 캐시의 기본 개념은 디스크에서 데이터를 읽은 후 사용 가능한 메모리에 데이터를 넣는 것 다음 읽기는 메모리에서 반환되고 데이터를 가져오는 데 디스크 탐색이 필요 없음 샤드레벨 요청캐시 - 유사한 쿼리를 사용할 때 데이터를 캐시 집계로만 구성된 검색 응답을 캐싱 구성 요소는 IndicesRequestCache 클래스 - 이 메서드는 쿼리 단계를 실행할 때 SearchService 내에서 사용 이 캐시는 기본적으로 활성화되어 있고, 총 힙의 최대 1%를 차지 요청별 구성 -요청 매개 변수를 통해 캐시를 활성화 결과를 반환하지 않는 검색 요청에 대해 활성 확인 GET /_nodes/stats/indices/request_ca..
searchTagList 의 수가 큰 shipMethod 를 구하는 쿼리 라고 하는데 실행해보면 shipMethod 의 cadinality 의 DESC 로 정렬되고 해당 집계에 대한 count 이다. 검증 안댐 GET /_search { "size": 0, "aggs": { "SEARCH_KEYWORD": { "terms": { "field": "shipMethod", "size": 10, "order": { "count": "desc" } }, "aggs": { "count": { "cardinality": { "field": "searchTagList" } } } } } } 쿼리 결과 { "took" : 15, "timed_out" : false, "_shards" : { "total" : 3, "s..
GET home-search-query-log/_search { "size": 1, "query": { "bool": { "filter": [ { "range": { "query_log.created_date_time": { "gte": "2023-10-29T22:40:00", "lt": "2023-10-29T22:45:00" } } }, { "term": { "query_log.result_count": 0 } } ] } }, "aggs": { "cardinality": { "cardinality": { "field": "query_log.input_query.keyword" } } }, "track_total_hits": true } { "took" : 18, "timed_out" : false, "..
검색 결과 리스팅은 Query Cache에, 검색 결과에 대한 집계 는 Request Cache 에 저장 된다 그렇다면 둘다 확인해서 multi_match + aggs 의 결과가 어디에 캐싱된건지 확인 GET /location-index/_stats/query_cache?human { "_shards": { "total": 2, "successful": 2, "failed": 0 }, "_all": { "primaries": { "query_cache": { "memory_size": "0b", "memory_size_in_bytes": 0, "total_count": 0, "hit_count": 0, "miss_count": 0, "cache_size": 0, "cache_count": 0, "evic..
file system cache 를 이용한.. 꼼수를 부려보자 기존쿼리 + AGGS 를 사용하는데 file system cache 를 이용할 수 가 없다. 왜냐..면 size 가 0이 될 수 없는 상황.. 그래서 AGGS size 0을 먼저 실행하고 그다음 검색쿼리를 실행하면 캐싱을 이용하지 않을까 하는 생각이 있는데 테스트를 해보자 location 정보를 색인할 예정이고 "country_code": { "type": "keyword" }, "city": { "type": "keyword" }, city 를 집계하고 country code 를 쿼리한다. flowchart 이게 가능한가? aggs name 으로 캐시가 생성되면 가능할꺼 같기도 한데.. aggs 결과를 쿼리결과와 합치지 않아도 된다면 후 처..
전역 서수는 집계 성능을 최적화하는 데 사용되는 데이터 구조입니다. 이는 느리게 계산되어 필드 데이터 캐시의 일부로 JVM 힙에 저장됩니다. 버킷팅 집계에 많이 사용되는 필드의 경우 요청을 수신하기 전에 Elasticsearch에 전역 서수를 구성하고 캐시하도록 지시할 수 있습니다. 힙 사용량이 증가하고 새로 고침 시간이 더 오래 걸릴 수 있으므로 이 작업은 신중하게 수행해야 합니다. 이 옵션은 Eager 전역 서수 매핑 매개변수를 설정하여 기존 매핑에서 동적으로 업데이트될 수 있습니다. 맵핑 옵션 PUT index { "mappings": { "properties": { "foo": { "type": "keyword", "eager_global_ordinals": true } } } } 테스트 해보자 ..
검색 속도 조정 파일 시스템 캐시에 메모리 제공 더 빠른 하드웨어 사용 문서 모델링 가능한 한 적은 수의 필드를 검색 사전 색인 데이터 매핑 식별자를 키워드로 고려 스크립트 피하기 반올림된 날짜 검색 읽기 전용 인덱스 강제 병합 글로벌 서수 워밍업 색인 정렬을 사용하여 접속사 속도를 높임 기본 설정을 사용하여 캐시 활용도 최적화 복제본은 처리량에 도움이 될 수 있지만 항상 그런 것은 아님 회사에서 성능 이슈를 제기했다. elasticsearch 의 캐싱을 정리하려고 하는데 쿼리속도가 문제가 아닌걸 알지만 우선 es 레벨에서 캐싱으로 처리할 수 있는 부분을 정리 우선 속도에 영향을 미치는 부분은 The more fields a query_string or multi_match query targets, t..