일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kafka
- Test
- zip 파일 암호화
- MySQL
- 차트
- TensorFlow
- query
- sort
- licence delete curl
- zip 암호화
- high level client
- analyzer test
- license delete
- 파이썬
- aggregation
- Mac
- 900gle
- Java
- matplotlib
- Elasticsearch
- API
- flask
- springboot
- plugin
- Python
- docker
- token filter test
- ELASTIC
- aggs
- License
- Today
- Total
개발잡부
[es] Regexp Query 본문
정규식 쿼리
쿼리구조는 아래와 같고
GET /_search
{
"query": {
"regexp": {
"user.id": {
"value": "k.*y",
"flags": "ALL",
"case_insensitive": true,
"max_determinized_states": 10000,
"rewrite": "constant_score"
}
}
}
}
옵션값 설명
<field>(필수, object) 검색하고자 하는 필드입니다.
value
(필수, 문자열) 제공된 에서 찾으려는 용어에 대한 정규식입니다 <field>. 지원되는 연산자 목록은 정규식 구문 을 참조하십시오 .
기본적으로 정규식은 1,000자로 제한됩니다. 설정 을 사용하여 이 제한을 변경할 수 있습니다 index.max_regex_length .
쿼리 성능은 regexp제공된 정규식에 따라 달라질 수 있습니다. 성능을 향상시키려면 접두사 또는 접미사 없이 .*또는 와 같은 와일드카드 패턴을 사용하지 마십시오 ..*?+
flags(선택 사항, 문자열) 정규식에 대한 선택적 연산자를 활성화합니다. 유효한 값 및 자세한 내용은 정규식 구문을 참조하십시오
.case_insensitive7.10.0에 추가되었습니다.(선택 사항, 부울) true로 설정된 경우 정규식 값과 인덱싱된 필드 값의 대/소문자를 구분하지 않는 일치를 허용합니다. 기본값은 일치의 대소문자 구분이 기본 필드의 매핑에 따라 달라지는 것을 의미하는 false입니다
.max_determinized_states
(선택 사항, 정수) 쿼리에 필요한 최대 자동화 상태 수입니다. 기본값은 입니다 10000.
Elasticsearch는 내부적으로 Apache Lucene을 사용하여 정규식을 구문 분석합니다.
Lucene은 각 정규식을 여러 결정된 상태를 포함하는 유한 자동 장치로 변환합니다.
이 매개변수를 사용하여 해당 변환이 의도치 않게 너무 많은 리소스를 소비하는 것을 방지할 수 있습니다. 복잡한 정규식을 실행하려면 이 제한을 늘려야 할 수 있습니다.
rewrite(선택 사항, 문자열) 쿼리를 다시 작성하는 데 사용되는 메서드입니다. 유효한 값 및 자세한 내용은 rewrite매개변수를 참조하십시오 .
비용이 많이 드는 쿼리 허용
search.allow_expensive_queries 가 false로 설정된 경우 Regexp 쿼리가 실행되지 않습니다 .
'ElasticStack > Elasticsearch' 카테고리의 다른 글
[es] elasticsearch 성능개선 (elasticsearch cache) (0) | 2023.09.25 |
---|---|
[es] script query (2) | 2023.09.01 |
[es] collapse (0) | 2023.07.13 |
[es] 재현율 개선 (0) | 2023.06.20 |
신조어 추천 (0) | 2023.06.05 |