저는 현재 elasticsearch에서 멋진 것을하려고 노력하고 있습니다 ... 그리고 그것은 거의 작동합니다.탄성 찾기가 "전체 용어"대신 "부분 용어"로 집계됩니다
사용 사례 : 특정 필드 당 결과 수를 (x) 개의 결과로 제한해야합니다.
예 : 결과 집합의 레스토랑에서는 레스토랑 이름 당 2 개의 위치 만 반환하려고합니다. 멕시칸 음식을 검색하면 (x) 타코 벨 히트, (x) 델 타코 히트 및 (x) 엘 토리 토 조회수를 얻어야합니다.
문제점 : 내 집계는 현재 용어의 일부만 일치합니다.
예를 들어: 나는 company_name
일치하려고하면 타코 벨은 그 회사에 대한 (x) * 2
결과의 결과로,이 버킷에 표시 할 수 있도록, 그것은 하나의 타코 양동이 종에 대한 또 다른 버킷을 만듭니다 .
나는 이것이 바람직한 행동이라고 믿기 어렵다. 전체 검색어로 집계 할 수 있습니까?
"aggs": {
"by_company": {
"terms": {
"field": "company_name"
},
"aggs": {
"first_hit": {
"top_hits": {"size":1, "from": 0}
}
}
}
}
당신의 도움을, 언제나, 대단히 감사합니다 :
여기에 내 현재 집계 JSON입니다!
너무 감사합니다! 나는 이것을 테스트 해본 적이 없지만, 내가 ES에 대해 이미 알고있는 것에 기반하여, 이것이 해결책이라고 확신한다. 당신은 확실히 ES가 어떻게 작동하는지, 내가 이미 알고 있었어야 만했던 것, 그러나 그렇게하지 않은 것의 거대한 양상을 밝혀내는 것을 도왔습니다. –