【问题标题】:How to rank documents using tfidf similairty in lucene如何在 lucene 中使用 tf idf 相似性对文档进行排名
【发布时间】:2017-01-04 01:36:51
【问题描述】:

在创建索引和搜索查询的基本代码中,我想使用 TFIDFsimilarity 对检索到的文档进行排名。但我收到一个错误“无法实例化类型 TFIDFSimilarity”。我的代码如下:

public class TFIDF_T {

private static Document createDocument(String id, String tb) {
    Document doc = new Document();
    doc.add(new Field("id", id, TextField.TYPE_STORED));
    doc.add(new Field("tb", tb, TextField.TYPE_STORED));
    return doc;
}

private static void search(IndexSearcher searcher, String queryString, Analyzer analyzer) throws IOException, ParseException {
    QueryParser parser = new QueryParser("tb", analyzer);
    Query query = parser.parse(queryString);
    ScoreDoc[] hits = searcher.search(query, 20).scoreDocs;
    int hitCount = hits.length;
    for (int i = 0; i < hitCount; i++) {
        Document doc = searcher.doc(hits[i].doc);
        System.out.println(doc.get("id"));
    }
}

public static void run(String path) throws IOException, ParseException {
    int ctr = 0;
    Analyzer analyzer = new StandardAnalyzer();
    RAMDirectory directory = new RAMDirectory();
    IndexWriterConfig config = new IndexWriterConfig(analyzer);
    IndexWriter iwriter = new IndexWriter(directory, config);
        String id = "101";
        String tb = "How to rank documents using tfidfsimilairty";
        iwriter.addDocument(createDocument(id, tb));
    }
    iwriter.close();
    DirectoryReader ireader = DirectoryReader.open(directory);
    IndexSearcher isearcher = new IndexSearcher(ireader);
    isearcher.setSimilarity(new **TFIDFSimilarity**());
    String tb1 = "How to rank documents using tfidfsimilairty";
    search(isearcher, tb1, analyzer);
    }
    ireader.close();
    directory.close();
  }
}

【问题讨论】:

    标签: java lucene


    【解决方案1】:

    TFIDFSimilarity 是一个抽象类。你不能实例化它。

    ClassicSimilarity 是它的实现(假设您使用的是 5.4 或更高版本,否则 DefaultSimilarity)。改用它。

    【讨论】:

    • 谢谢。是的,我使用的是 6.1.0,并且已经使用了 ClassicSimilarity。
    猜你喜欢
    • 2017-02-27
    • 2017-07-27
    • 2013-04-18
    • 2012-04-27
    • 2017-04-07
    • 2018-08-29
    • 2010-12-31
    • 2017-10-05
    • 1970-01-01
    相关资源
    最近更新 更多