如何使用 Liferay API's 在 Elastic-search 中建立父子关系搜索?

How to build parent child relationship search in Elastic-search using Liferay API's?

我们在 Liferay 中有一个名为 'Publication' 的自定义实体。它在 Elastic-search 中被索引并包含一个名为 'journalArticleId' 的字段。

根据我们的搜索要求,如果某些用户在期刊文章中搜索任何关键字,我们必须 return 包含相应期刊 'journalArticleId' 的出版文件。

我找到了使用 Java API 实现这个的解决方案,但我正在寻找 Liferay API 来解决这个问题。

提前感谢您的回复。

您应该能够找到覆盖索引器的文档。听起来您可以只扩展现有的期刊索引器:只需将额外的出版物数据添加到现有期刊文章的全文索引中,它就会自动找到。

编辑(在您的评论之后):没有查找,我认为 Liferay 对 API 的封装并不能真正满足父子关系(但是:我可能错了,它可能在或简单)。然而,Liferay 还允许您将 Elasticsearch 与 SOLR(以及可能的其他)交换,因此其 API 自然不会使用底层搜索引擎的所有功能。但是,您应该始终能够自己进行额外的调用——可能不是在索引器中,而是更靠近 ES 适配器。

解决方案可能是:在 Indexer 中准备内容,稍后在 Elasticsearch 适配器中将其分离为父项和子项。

对于现有索引器的扩展,您应该尝试实现索引器 post 处理器挂钩 ... 而不是实际使用扩展插件覆盖它们

link 6.2 https://dev.liferay.com/de/develop/tutorials/-/knowledge_base/6-2/extending-the-indexer-post-processor-using-a-hook

link 7 又名 dxp https://dev.liferay.com/de/develop/reference/-/knowledge_base/7-0/indexer-post-processor

elasticsearch提供了parent-child mapping的特性,上述情况的解决方案可以使用JavaAPI来实现。

我们已联系 Liferay 支持团队,他们回复说 Liferay-elasticsearch 适配器尚不支持此功能。 版本:liferay-dxp-digital-enterprise-7.0-sp3