我正在开发一个用于对liferay内容进行高级搜索的模块,并且被困在文档库搜索中,被要求按文档类型搜索文档,并且我想知道这种功能的可行性,我已经检查了liferay代码并发现文档库索引器未索引文档扩展名,而是索引了整个文件名

请帮助我解决这个问题

最佳答案

如果使用的是6.0或更高版本,则可以通过使用hook插件来更改对文档建立索引的方式。

只需在您的liferay-hook.xml中定义

<indexer-post-processor>
    <indexer-class-name>com.liferay.portal.model.DLFileEntry</indexer-class-name>
    <indexer-post-processor-impl>com.example.hook.indexer.DLFileEntryIndexerPostProcessor</indexer-post-processor-impl>
</indexer-post-processor>


在您的后处理器类中,扩展com.liferay.portal.kernel.search.BaseIndexerPostProcessor并实现您需要更改的方法。

在这种情况下,您可能要实现postProcessDocument以将扩展名添加为索引字段,还需要实现postProcessSearchQuerypostProcessFullQuery将其添加为搜索查询的一部分。

10-07 13:11