2017-03-06 28 views
0

返回排序字段我需要的那种配置,以响应的一部分,所以让我们假设我有这个疑问弹性排序 - 响应

{ sort: [ {"name":"asc"},{"age:"descr"}]} 

我需要有这样的作为的一部分该响应将我的构面/ UI状态与该排序同步。我看到有一个“排序”响应字段,但它基本上列出了为排序选择的值,但不包括哪个字段和哪种排序类型。

阅读文档我不知道它应该是这样https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-sort.html#_sort_values

无法找到这事在网上,很多如何例子,也堆排序,但没有关于如何体现在回应中的排序。

如果它的事项,我目前使用Elasticsearch 2.4

+0

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

回答

0

这实际上是不可能的开箱即用。

我用我的中间件解决了这个问题。因此,当一个客户希望在ES搜索,它发生这样

client -> middleware -> ES 

要在响应排序,中间件做这样的事情

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

所以我从请求复制排序字段进入响应,这实际上是非常有用的客户端,当处理聚合/分面搜索