Liferay搜索结构化webcontent匹配附件的术语

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Liferay搜索结构化webcontent匹配附件的术语相关的知识,希望对你有一定的参考价值。

我们有一个带有“文档和媒体”字段的Web内容结构“S”。

我们基于之前的结构«S»创建了一个名为«W»的webcontent,其中包含一个名为“a”的文件附件,其中包含“hello”文本。

我们知道lucene / ElasticSearch正在索引附件的内容(例如,如果它是单词或pdf文件)。

因此,我们进行lucene搜索(使用booleanQuery,fitering on journalArticle)来检索S webcontent以匹配“hello”搜索词。

但是我们看到lucene,在journalArticle上过滤,返回一个类似json的对象和这些数据:

“ddm__keyword__87940__attachements_en_US”:[\“groupId \”:\“115863 \”,\“title \”:\“a.word \”,\“type \”:\“document \”,\“uuid \”: \ “dffd1d3d-8b78-a64c-4d0c-8d004d24cb75 \”]

它只引用DLFileEntry对象。

是否有一种方法,只有一个请求,检索匹配单词附件的期刊文章?

我们看到Liferay提出了“索引器后处理器”,它可以帮助我们将DLFileEntry数据存储在webcontent的新字段中,但DLFileEntry索引是异步的。

我们能做什么 ?

答案

如果您不坚持ES级别的单个查询,我会使用Hit post处理器解决它。

https://dev.liferay.com/de/develop/tutorials/-/knowledge_base/7-0/introduction-to-liferay-search#hitsprocessor

我会查询文件中的单词,然后如果有一个点击,我会使用后处理器增强/替换潜在的Web内容条目。

另一答案

我们找到了解决方案:

  1. 我们为JournalArticle类创建了一个钩子索引器后处理器。
  2. 在索引器后处理器中,我们检索dlFileEntry并通过document.addFile()对其进行索引。
  3. 在我们的portlet中,我们现在可以使用booleanQuery(addterm)和IndexSearcherHelperUtil.search请求文件内容

唯一的缺点是文件内容被索引两次(原生与dlFileEntry,现在进入journalArticle)

以上是关于Liferay搜索结构化webcontent匹配附件的术语的主要内容,如果未能解决你的问题,请参考以下文章

Liferay 7:Liferay DXP全套教程内附源码

Liferay - 使用 portlet 在 Web Content 下创建文件夹和子文件夹

在 Web 内容模板中显示 Web 内容

Liferay7 BPM门户开发之35: AssetTag的集成查询

mybatis学习笔记 -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)

liferay 7 - 不匹配的匿名定义()