Elasticsearch索引搜索具有不同的限制

时间:2013-12-06 09:48:09

标签: php elasticsearch limit elastica

我正在使用elasticsearch为用户提供下拉服务。到现在为止还挺好。现在我想弄清楚是否可以使用不同的排序/过滤器/限制来搜索不同的类型。

到目前为止,我已经找到了每种类型的不同过滤器,并且有点类型。我已经使用布尔查询实现了不同的过滤器,使用shoulds和排序取决于分数。 我的目标是显示总共10行,其中8行应该是产品,2行应该是类别。对于类别,此限制应为max,如果没有要显示的类别,则应显示10个产品。 我已经阅读了文档,我可以看到可以将大小设置为像排序一样查询正文。但排序具有更大的灵活性。所以,是的,问题是关于限制 - 有没有办法实现它?

1 个答案:

答案 0 :(得分:1)

您所要求的似乎是字段折叠或分组。

Elasticsearch问题跟踪器上的此功能有一个很长的优秀票证:https://github.com/elasticsearch/elasticsearch/issues/256,最新更新(来自http://www.elasticsearch.com/blog/from-amsterdam-with-love-elasticsearchs-second-company-all-hands/)虽然正在取得进展,但它不会出现1.0发布后:

  

我们再次充实了为了在分布式环境执行中正确支持字段折叠所需的内容,以及获取内部命中的能力(对于嵌套/父子代理案例)。我们对搜索执行基础架构中需要的重构类型有一个很好的了解,并希望在1.0之后解决它。

在添加此功能之前,您最好的选择是使用multi search api建议的Damien执行多次搜索并按照您希望的方式合并其结果。这意味着为每个必需组构建一个搜索请求(在您的情况下,为每个搜索设置索引/类型)并解析返回的JSON排序。