Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lucene:迭代所有条目_Lucene_Loops - Fatal编程技术网

Lucene:迭代所有条目

Lucene:迭代所有条目,lucene,loops,Lucene,Loops,我有一个Lucene索引,我想迭代一下(在当前开发阶段进行一次评估) 我有4个文档,每个文档有几十万到一百万个条目,我想迭代计算每个条目的字数(~2-10)并计算频率分布 我目前正在做的是: for (int i = 0; i < reader.maxDoc(); i++) { if (reader.isDeleted(i)) continue; Docu

我有一个Lucene索引,我想迭代一下(在当前开发阶段进行一次评估) 我有4个文档,每个文档有几十万到一百万个条目,我想迭代计算每个条目的字数(~2-10)并计算频率分布

我目前正在做的是:

   for (int i = 0; i < reader.maxDoc(); i++) {
                    if (reader.isDeleted(i))
                        continue;

                    Document doc = reader.document(i);
                Field text = doc.getField("myDocName#1");

                String content = text.stringValue();


                int wordLen = countNumberOfWords(content);
//store
}
for(int i=0;i

到目前为止,它正在迭代一些东西。调试确认它至少在文档中存储的术语上运行,但由于某些原因,它只处理存储术语的一小部分。我想知道我做错了什么?我只想遍历所有文档以及其中存储的所有内容?

首先,您需要确保启用了TermVectors进行索引

doc.add(new Field(TITLE, page.getTitle(), Field.Store.YES, Field.Index.ANALYZED, TermVector.WITH_POSITIONS_OFFSETS));
然后可以使用
IndexReader.getTermFreqVector
来计算术语

TopDocs res = indexSearcher.search(YOUR_QUERY, null, 1000);

// iterate over documents in res, ommited for brevity

reader.getTermFreqVector(res.scoreDocs[i].doc, YOUR_FIELD, new TermVectorMapper() {
            public void map(String termval, int freq, TermVectorOffsetInfo[] offsets, int[] positions) {
                // increment frequency count of termval by freq
                freqs.increment(termval, freq);
            }

            public void setExpectations(String arg0, int arg1,boolean arg2, boolean arg3) {}
});