rate
속성을 포함하는 많은 문서가 허용 범위의 최소/최대 범위를 포함하는 배열입니다.Elasticsearch : 최대/최소값을 가진 배열을 기반으로 범위에 대한 점수를 채점하는 방법
{ "rate": [250, 700] }
는 는 지금은 예를 들어, 다른 범위를 제공하는 쿼리를 수행하고자하는
:
잘 작동하고 항상 범위 내에서 제공되는 값 중 적어도 하나가 값을 반환{
"bool": {
"must": [
"range": {
"rate": { "from": 100, "to": 500 }
}
]
}
}
은 무엇 인 내가 원하는.
그러나 모든 결과에 대해 점수는 같습니다. 값이 문서의 값과 같거나 몇 자리 숫자의 범위를 벗어나는 것이 중요하지 않습니다. 아래 그림과 같이 :
{
"_id": "one",
"_score": 1",
"_source": { "rate": [250,750] }
},
{
"_id": "two",
"_score": 1",
"_source": { "rate": [200,350] }
},
{
"_id": "three",
"_score": 1",
"_source": { "rate": [500,750] }
}
이렇게 다른 범위를 제공하는 범위 검색을 향상시킬 방법이 있습니까?
감사합니다. @pickypg, 질문을 할 때 범위 쿼리를 추가하는 것을 실제로 잊었습니다 (지금 수정 됨). 아쉽게도 AWS ES 서비스를 사용하면서 Groovy에 액세스 할 수 없습니다. 다른 아이디어로 생각하면 될까요? 도움이된다면 데이터를 다르게 모델링 할 수 있지만 'rate_from'과 'rate_to'와 같은 별도의 값을 갖는 것이 훨씬 더 복잡해졌습니다.100,500을 제공 할 때 100,500 개의 입력이 100 % 일치하고 400,700이 아닌 100,000 개의 입력이 제공 될 때 더 높은 점수를 얻는 범위 또는 비율의 영역과 일치하는 것이 많을 것이라는 아이디어입니다. – zanona