在lucene中提升一些话

时间:2014-11-06 11:18:22

标签: java 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”和“book”^ 0.5),我可以提高搜索速度,但这不是我想要的。

1 个答案:

答案 0 :(得分:1)

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