我正在使用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"
}
}
至少现在文件显示,即使在底部.