如何使用Liferay API在弹性搜索中构建父子关系搜索?



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

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

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

弹性搜索父子数据搜索 Java API

提前感谢您的任何回复。

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

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

链接 7 又名 DXP https://dev.liferay.com/de/develop/reference/-/knowledge_base/7-0/indexer-post-processor

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

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

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

弹性搜索提供了父子映射的功能,上述情况的解决方案可以使用Java API实现。 弹性搜索父子数据搜索 Java API

我们已经联系了Liferay支持团队,他们回应说Liferay-elasticsearch适配器尚不支持此功能。 版本:Liferay-DXP-数字企业-7.0-SP3

最新更新