如何使用 ElasticSearch 仅搜索嵌套对象数组中的第一个对象



我在我编写的系统中使用ElasticaBundle和ElasticSearch和Symfony2。一个"人"可以在他们的工作历史中拥有许多"职位"。位置按日期描述排序,为了使用 PHP 查找某人的当前位置,我检索并读取数组中的第一个对象。

我正在努力使用ElasticSearch仅搜索当前或第一个位置。我已经将映射设置为嵌套,并且我能够执行嵌套查询,返回具有符合我所有条件的"位置"的"人"。我不能做的是弄清楚如何只在第一个列出的"位置"中搜索条件。有人有什么想法让我走上正确的道路吗?

目前我能想到的唯一选择是:在每个对象中维护一个订单值,以便我可以挑选出第一个,或在实体中创建另一个仅具有关系的字段,其位置为 1

我在 ElasticSearch 文档中读到,ElasticSearch 不支持这种键,但现在我找不到有问题的页面。不好意思。

最后,我通过在当前位置上设置一个标识符来解决这个问题,即给它一个标识符 0,所有其他位置编号按顺序排列。

相关内容

  • 没有找到相关文章

最新更新