bin/mahout lucene.vector --dir /home/hadoop/index --output /user/hadoop/out/part-out.vec --field title --idField id --dictOut /user/hadoop/out/dict.out
--maxPercentErrorDocs 0.1
Exception in thread "main" java.lang.IllegalStateException: There are too many documents that do not have a term vector for ***
at org.apache.mahout.utils.vectors.lucene.LuceneIterator.computeNext(LuceneIterator.java:118)
at org.apache.mahout.utils.vectors.lucene.LuceneIterator.computeNext(LuceneIterator.java:41)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:141)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:136)
at org.apache.mahout.utils.vectors.io.SequenceFileVectorWriter.write(SequenceFileVectorWriter.java:44)
at org.apache.mahout.utils.vectors.lucene.Driver.dumpVectors(Driver.java:109)
at org.apache.mahout.utils.vectors.lucene.Driver.main(Driver.java:250)
原因1
***是不存在的file ,修改为正确的field
原因2
***是termVectors为false的field
解决,生成index时要设置field的termVectors 为true
原因3,错误文档数目超过了预定的百分比,
可以增加参数--maxPercentErrorDocs 0.1
表示允许10%的错误文档