Elasticsearch – 排序多索引查询

我正在使用elasticsearch构建自动完成搜索,因此我需要查询3个索引帖子,评论和作者.我有以下查询:

{
   "query":{
      "query_string":{
         "query":"something"
      }
   }
}

电话:

curl -X GET 'http://localhost:9200/posts,comments,authors/_search?pretty' -d '{
  "query": {
    "query_string": {
      "query": "something"
    }
  }
}'

我需要按特定的索引字段对结果进行排序,例如:

posts索引有一个名为comments_count,comments votes_count和authors posts_count的字段.在比较帖子时,它应该按comments_count排序,当评论然后是votes_count,当作者然后post_count.

有可能做那样的事吗?我不想将索引合并为一个,因为它们索引完全不同的文档.

最佳答案 好吧,我的问题是,如果我按照所有索引中不存在的字段排序,则不会返回文档.

管理解决:

{
   "_script":{
      "script":"type=doc['_type'].value;if(type=='posts'){return doc['comments_count'].value} else {return 0};",
      "type":"number",
      "order":"desc"
   }
}

至少现在文件显示,即使在底部.

点赞