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处理器解决它。
我会查询文件中的单词,然后如果有一个点击,我会使用后处理器增强/替换潜在的Web内容条目。
我们找到了解决方案:
- 我们为JournalArticle类创建了一个钩子索引器后处理器。
- 在索引器后处理器中,我们检索dlFileEntry并通过document.addFile()对其进行索引。
- 在我们的portlet中,我们现在可以使用booleanQuery(addterm)和IndexSearcherHelperUtil.search请求文件内容
唯一的缺点是文件内容被索引两次(原生与dlFileEntry,现在进入journalArticle)
以上是关于Liferay搜索结构化webcontent匹配附件的术语的主要内容,如果未能解决你的问题,请参考以下文章
Liferay - 使用 portlet 在 Web Content 下创建文件夹和子文件夹
Liferay7 BPM门户开发之35: AssetTag的集成查询
mybatis学习笔记 -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)