Liferay 搜索匹配附件术语的结构化网页内容
Liferay Search over structured webcontent matching attachment's term
我们有一个带有“文档和媒体”字段的网页内容结构“S”。
我们在之前的结构«S»的基础上创建了一个名为«W»的网页内容,其中包含一个名为“a”的word文件附件,其中包含“hello”文本。
我们知道 lucene/ElasticSearch 正在索引附件的内容,例如 word 或 pdf 文件。
所以我们进行了一个 lucene 搜索(使用 booleanQuery,在 journalArticle 上过滤)来检索 S webcontent 以匹配“hello”搜索词。
但我们看到了 lucene,在 journalArticle 上进行过滤,return 一个 json 类对象,其中包含这些数据:
"ddm__keyword__87940__attachements_en_US":[
{\"groupId\":\"115863\",\"title\":\"a.word\",\"type\":\"document\",\"uuid\":\ "dffd1d3d-8b78-a64c-4d0c-8d004d24cb75\"}]
它只有对 DLFileEntry 对象的引用。
有没有一种方法,只需一个请求,就可以检索与单词附件匹配的期刊文章?
我们看到 Liferay 提出了“索引器 Post 处理器”,它可以帮助我们将 DLFileEntry 数据存储在我们的 web 内容的新字段中,但 DLFileEntry 索引是异步的。
我们能做什么?
如果您不坚持在 ES 级别进行单个查询,我会使用命中 post 个处理器来解决它。
我会查询文件中的单词,然后如果有命中,我会使用 post 处理器将结果增强为 add/replace 潜在的 Web 内容条目。
我们找到了解决方案:
- 我们为 JournalArticle class 创建一个挂钩索引器 post 处理器。
- 在索引器 post 处理器中,我们检索 dlFileEntry 和索引
它通过 document.addFile().
- 在我们的 portlet 中,我们现在可以使用
booleanQuery (addterm) 和 IndexSearcherHelperUtil.search
唯一的缺点是文件内容被索引了两次(原生使用 dlFileEntry,现在使用 journalArticle)
我们有一个带有“文档和媒体”字段的网页内容结构“S”。
我们在之前的结构«S»的基础上创建了一个名为«W»的网页内容,其中包含一个名为“a”的word文件附件,其中包含“hello”文本。
我们知道 lucene/ElasticSearch 正在索引附件的内容,例如 word 或 pdf 文件。
所以我们进行了一个 lucene 搜索(使用 booleanQuery,在 journalArticle 上过滤)来检索 S webcontent 以匹配“hello”搜索词。
但我们看到了 lucene,在 journalArticle 上进行过滤,return 一个 json 类对象,其中包含这些数据:
"ddm__keyword__87940__attachements_en_US":[ {\"groupId\":\"115863\",\"title\":\"a.word\",\"type\":\"document\",\"uuid\":\ "dffd1d3d-8b78-a64c-4d0c-8d004d24cb75\"}]
它只有对 DLFileEntry 对象的引用。
有没有一种方法,只需一个请求,就可以检索与单词附件匹配的期刊文章?
我们看到 Liferay 提出了“索引器 Post 处理器”,它可以帮助我们将 DLFileEntry 数据存储在我们的 web 内容的新字段中,但 DLFileEntry 索引是异步的。
我们能做什么?
如果您不坚持在 ES 级别进行单个查询,我会使用命中 post 个处理器来解决它。
我会查询文件中的单词,然后如果有命中,我会使用 post 处理器将结果增强为 add/replace 潜在的 Web 内容条目。
我们找到了解决方案:
- 我们为 JournalArticle class 创建一个挂钩索引器 post 处理器。
- 在索引器 post 处理器中,我们检索 dlFileEntry 和索引 它通过 document.addFile().
- 在我们的 portlet 中,我们现在可以使用 booleanQuery (addterm) 和 IndexSearcherHelperUtil.search
唯一的缺点是文件内容被索引了两次(原生使用 dlFileEntry,现在使用 journalArticle)