我正在开发一个用于对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
以将扩展名添加为索引字段,还需要实现postProcessSearchQuery
或postProcessFullQuery
将其添加为搜索查询的一部分。