JavaのLuceneでドキュメントごとのヒット数を取得するにはどうしたらいいですか? 。我々はluceneのドキュメント(doc)のヒット数を取得する
設定した場合:私は、TFVがnull :( が、そこから各ドキュメントにヒットを取得する方法についていくつかのいずれかの直接
編集することができようになっている
IndexReader reader; reader = IndexReader.open(FSDirectory.open(new File(index)), true); Searcher searcher = new IndexSearcher(reader); String feild = "contents" QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, field,analyzer); Query query = parser.parse("test"); TopScoreDocCollector collector = TopScoreDocCollector.create( 5 * hitsPerPage, false); searcher.search(query, collector); ScoreDoc[] hits = collector.topDocs().scoreDocs; Searcher searcher = new IndexSearcher(reader); int numTotalHits = collector.getTotalHits(); System.out.println(numTotalHits + " total matching documents");for (int i = start; i < end; i++) { int id = hits[i].doc; TermFreqVector[] Tfv = reader.getTermFreqVectors(id);
を持っていますあなたは索引付け中にTermVector.YESを使用できます。 ありがとう、 Sharma
私に例を教えてもらえますか? – remo
ちょうど類似性クラスを拡張します。周波数を格納するtf(float frequency)メソッドを実装する。インデックスサーチャーhttp://lucene.apache.org/java/3_0_3/api/all/org/apache/lucene/search/Searcher.html#setSimilarity%28org.apache.lucene.searchに類似性を付けることを忘れないでください。類似性%29 – jarekrozanski