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