小编Kev*_*ven的帖子

Lucene:使用PrefixQuery进行分数计算

我在使用PrefixQuery进行分数计算时遇到问题.要更改每个文档的分数,在将文档添加到索引中时,我已使用setBoost来更改文档的提升.然后我创建PrefixQuery进行搜索,但结果没有根据提升进行更改.似乎setBoost完全不适用于PrefixQuery.请检查下面的代码:

 @Test
 public void testNormsDocBoost() throws Exception {
    Directory dir = new RAMDirectory();
    IndexWriter writer = new IndexWriter(dir, new StandardAnalyzer(Version.LUCENE_CURRENT), true,
            IndexWriter.MaxFieldLength.LIMITED);
    Document doc1 = new Document();
    Field f1 = new Field("contents", "common1", Field.Store.YES, Field.Index.ANALYZED);
    doc1.add(f1);
    doc1.setBoost(100);
    writer.addDocument(doc1);
    Document doc2 = new Document();
    Field f2 = new Field("contents", "common2", Field.Store.YES, Field.Index.ANALYZED);
    doc2.add(f2);
    doc2.setBoost(200);
    writer.addDocument(doc2);
    Document doc3 = new Document();
    Field f3 = new Field("contents", "common3", Field.Store.YES, Field.Index.ANALYZED);
    doc3.add(f3);
    doc3.setBoost(300);
    writer.addDocument(doc3);
    writer.close();

    IndexReader reader = IndexReader.open(dir);
    IndexSearcher searcher = new IndexSearcher(reader); …
Run Code Online (Sandbox Code Playgroud)

java lucene lucene.net

8
推荐指数
2
解决办法
1795
查看次数

标签 统计

java ×1

lucene ×1

lucene.net ×1