1

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

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

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

Elastic Search 父子数据搜索 Java API

提前感谢您的任何回复。

4

3 回答 3

1

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

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

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

于 2017-07-26T15:47:07.373 回答
1

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

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

7 aka dxp 的链接 https://dev.liferay.com/de/develop/reference/-/knowledge_base/7-0/indexer-post-processor

于 2017-07-26T17:12:49.213 回答
0

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

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

于 2017-08-03T15:07:52.033 回答