Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- gradle
- 플레이 프레임워크
- coursera
- Logstash
- kafka interactive query
- spring-kafka
- Spring
- reactive
- Slick
- Elk
- spring-batch
- schema registry
- statestore
- kafkastreams
- scala
- springboot
- Elasticsearch
- Kafka
- 한빛미디어
- RabbitMQ
- play framework
- spring-cloud-stream
- scala 2.10
- kafka streams
- aws
- enablekafkastreams
- confluent
- 카프카
- avo
- kafkastream
Archives
- Today
- Total
b
elasticsearch 에서 must_not random document 검색하기 본문
엘라스틱 커뮤니케이서 본 글 ( https://www.facebook.com/groups/elasticsearch.kr/permalink/2277648678987626/ )
random-score로 특정 문서 몇개를 추출 하는 방법에 대한 고민이다.
{
"size": 1,
"_source" : "type",
"query": {
"function_score": {
"random_score": {},
"query": {
"bool": {
"must_not": {
"term" :{
"type": "APPROVAL_REQUESTED"
}
}
}
}
}
}
}
이렇게 하여 랜덤으로 문서 1개를 뽑을 수 있을 것 같았다. 하지만 must_not 은 score 를 항상 0 점으로 반환하므로 거기에 random score를 곱해 봤자 모든 문서는 0점으로 으로 원하는 대로 동작하지 않았다. ( 링크1) must_not score of 0 for all documents is returned )
링크2)와 링크3)을 를 참고하여서 score_mode 에 'sum' 을 활용하면 되지 않을까 생각하였고,
{
"size": 1,
"_source" : "type",
"query": {
"function_score": {
"boost": "1",
"random_score": {},
"boost_mode":"sum",
"query": {
"bool": {
"must_not": {
"term" :{
"type": "APPROVAL_REQUESTED"
}
}
}
}
}
}
}
위와 같은 쿼리로 must_not 이면서 random document 1개를 뽑을 수 있었다.
링크1) https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html
링크2) https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html
Comments