elasticsearch,lucene,Sorting,elasticsearch,Lucene" /> elasticsearch,lucene,Sorting,elasticsearch,Lucene" />

Sorting 弹性搜索排序-返回响应中的排序字段

Sorting 弹性搜索排序-返回响应中的排序字段,sorting,elasticsearch,lucene,Sorting,elasticsearch,Lucene,我需要将排序配置作为响应的一部分,因此假设我有这个查询 { sort: [ {"name":"asc"},{"age:"descr"}]} 我需要将此作为响应的一部分,以便将我的facets/ui状态与排序同步。我看到有一个“sort”响应字段,但它基本上列出了为排序选择的值,但没有列出哪个字段和排序类型 阅读文档时,我不确定是否应该如此 在web上找不到任何关于这方面的信息,很多关于如何对示例进行排序的信息,也在堆栈上,但是没有关于如何在响应中反映排序的信息 如果有必要的话,我目前正在使用E

我需要将排序配置作为响应的一部分,因此假设我有这个查询

{ sort: [ {"name":"asc"},{"age:"descr"}]}
我需要将此作为响应的一部分,以便将我的facets/ui状态与排序同步。我看到有一个“sort”响应字段,但它基本上列出了为排序选择的值,但没有列出哪个字段和排序类型

阅读文档时,我不确定是否应该如此

在web上找不到任何关于这方面的信息,很多关于如何对示例进行排序的信息,也在堆栈上,但是没有关于如何在响应中反映排序的信息


如果有必要的话,我目前正在使用Elasticsearch 2.4,这实际上是不可能开箱即用的

我使用中间件解决了这个问题。因此,当客户想要在ES上搜索时,它是这样发生的

client -> middleware -> ES
为了在响应中包含排序,中间件执行如下操作

result = es.search(query)
result['sort'] = query['sort'] if query.key?('sort')
return result

因此,我将排序字段从请求复制到响应中,这实际上对客户端非常有用,当处理聚合/分面搜索时

关于我们处理的分面搜索,我当然试图从服务器解析搜索的“状态”,而不是将其保留在客户端上。特别是当您处理竞争条件时,例如在短时间内发送多个请求(切换排序),UI中只反映最新的请求,您不确定响应返回的顺序-因此您的UI可能与实际响应不匹配。除此之外,我没有要求“概念指导”,所以你的回答只是开始了一个不同的讨论:)