これを Lucene 4.0 とその新機能で動作させることができません...誰か助けてくれませんか??
Web から大量の html ドキュメントをクロールしました。ここで、すべてのドキュメントの個別の単語の数を数えたいと思います。
これは私がLucene 3.5で行った方法です(単一のドキュメントの場合。それらをすべて取得するには、すべてのドキュメントをループします...毎回1つのドキュメントのみを含む新しいRAMDirectoryを使用します):
Analyzer analyzer = some Lucene Analyzer;
RAMDirectory index;
index = new RAMDirectory();
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_35, analyzer);
String _words = new String();
// get somehow the String containing a certain text:
_words = doc.getPageDescription();
try {
IndexWriter w = new IndexWriter(index, config);
addDoc(w, _words);
w.close();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
try {
// System.out.print(", count Terms... ");
IndexReader reader = IndexReader.open(index);
TermFreqVector[] freqVector = reader.getTermFreqVectors(0);
if (freqVector == null) {
System.out.println("Count words: ": 0");
}
for (TermFreqVector vector : freqVector) {
String[] terms = vector.getTerms();
int[] freq = vector.getTermFrequencies();
int n = terms.length;
System.out.println("Count words: " + n);
....
Lucene 4.0 でこれを行うにはどうすればよいですか?
ただし、RAMDirectory ではなく FSDirectory を使用してこれを行うことをお勧めします。ドキュメントの数が非常に多い場合、これはよりパフォーマンスが高いと思いますか?
ありがとう、そしてよろしく C.