如果ElasticSearch为空,我如何对它进行排序?

时间:2014-08-17 01:12:01

标签: lucene elasticsearch

有时,索引中没有任何内容,有时候,我有一些文档。这只是我的申请的性质。当索引包含文档时,我按" final_score"排序。降。我的查询如下:

GET /_search
{
    "query": {
        "match_all":{}
    },
    "sort":[
         { "final_score" : "desc" }
    ]
}

但是,当索引中有0个文档时,此查询会中断。我必须删除排序以使查询工作。

如何使此查询适用于任何数量的文档(0或更多?)

1 个答案:

答案 0 :(得分:1)

如果您没有字段并要求弹性搜索按该字段排序,则存在问题, 因此,对final_score进行映射,以便它不会抛出错误(如果没有索引也是如此)。

示例:

POST http://localhost:9200/index/type/_mapping
{
   "type": {
      "properties": {
         "final_score": {
            "type": "integer"
         }
      }
   }
}