매핑하는 필드에 따라 정렬 할 필드는 double 유형입니다. 기대하는 음수 값이 있으므로 누락 된 값을 0으로 처리 할 것으로 예상했습니다. 누락 된 것들 아래로 이동하십시오. (현재 누락 된 항목이 음수 이하가됩니다.)Elasticsearch 2.x 정렬로 0.0으로 처리 됨
어떻게해야합니까?
매핑하는 필드에 따라 정렬 할 필드는 double 유형입니다. 기대하는 음수 값이 있으므로 누락 된 값을 0으로 처리 할 것으로 예상했습니다. 누락 된 것들 아래로 이동하십시오. (현재 누락 된 항목이 음수 이하가됩니다.)Elasticsearch 2.x 정렬로 0.0으로 처리 됨
어떻게해야합니까?
누락되거나 null
값이 0 값으로 처리되어야한다고 설명하는 것 같습니다. 실제 '0'값과 구별 할 필요가없는 경우 null_value
을 사용할 수 있습니다. the manual
다른 상황에서는 구별해야 할 경우 플래그를 추가해야 할 수 있습니다 이 같은 순서 2, 1, 3
에서 문서를 반환합니다
PUT test
{
"mappings": {
"my_type": {
"properties": {
"status_code": {
"type": "integer",
"null_value": 0
}
}
}
}
}
PUT test/my_type/1
{
"status_code": null
}
PUT test/my_type/2
{
"status_code": -1
}
PUT test/my_type/3
{
"status_code": 1
}
GET test/my_type/_search
{
sort" : [
{ "status_code" : "desc" },
]
}
: 또는 뭔가 (그래서 두 번째 필드는) 실제로 "하지만 실제로 실종됐다",하지만 그건 정말 유스 케이스에
빠른 예를 따라 말할 수 있습니다 예상 됨
는 정렬 function score
쿼리 (https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html)에 not
필터와 함께 사용하고, 귀하의 경우 0.0과 같은 값을 누락 필요한 부스트/점수를 줄 수 exists
쿼리 (https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-exists-query.html)가있다.
하지만 훨씬 간단한 솔루션을 제안합니다. 필드 값을 누락 값 대신 0.0으로 지정하면 훨씬 쉽게 작업 할 수 있습니다. 필요한 필드를 정렬 할 수 있습니다.