2011-11-22 71 views
3

我正在开发一个用于高级搜索liferay内容的模块,并且我被困在文档库搜索中,它被要求通过文档类型在文档中搜索,并且希望知道可行性这样的功能,我已经检查Liferay的代码,发现文档库索引不会索引文件的扩展名,而不是如果您使用6.0或它的索引整个文件名通过文档扩展名在Liferay文档库中搜索

请帮助我解决这个问题

+0

我意识到这不太可能想让你想听到,但在更高版本的Liferay中,我们开始将扩展索引为“扩展”字段。如果你能修补你的env,这对索引器是一个改变。 \t \t \t document.addKeyword(“extension”,dlFileEntry.getExtension()); – Ray

+0

感谢您的回复, 无论如何,我都知道它,并开始寻找一个索引器重写,并陷入了它,以及如果你有一个建议重写索引器发布回复那里http://stackoverflow.com/questions/8231851/change-liferay-search-indexer 无论如何感谢 –

回答

1

更高,您可以使用挂钩插件更改文档索引的方式。

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包括它作为搜索查询的一部分。