2014-11-06 73 views
0

如何增加lucene索引中的某些特定单词?在lucene中增加一些单词

例如,我有一个项目列表:

"lucene in action" 
"solr in action" 
"solr in action book" 
"building search applications" 
"building search applications book" 

我认为这个词“书”为不重要,想下来投它。我不想使用过滤器从搜索结果中完全删除单词,因为它仍然可能有用。有些书可能有一本名为词的书(例如“摩门教书”)。

目前,我用

new StandardAnalyzer(version) 

和存储领域

new TextField("name", name, Field.Store.YES) 

理想情况下,我想有术语列表的字典,以提高并把它提供给Lucene来。我知道如果我打破了对术语的要求(比如“lucene”和“书”^ 0.5),我可以提高搜索效率,但这不是我想要的。

回答

1

在Apache Lucene中,您可以在三个不同的位置配置提升:文档,字段和查询。由于您不想在查询级别提高性能,因此我认为在Field级别进行提升可能会派上用场。 Field类的方法setBoost()
请记住,如果您将增强添加到您的字段,那么在将文档添加到索引之前,您需要这样做。
您还需要考虑从索引中删除文档或更改单词词典时的操作(我很确定它会这样做)。

+1

谢谢。对不起,我可能会错过一些东西..但在这种情况下如何提高特定的术语?假设我想从“行动书中的lucene”中提升“书”。 – cyrillk 2014-11-07 23:31:37