Lucene: termFreqVector всегда равен нулю? - PullRequest
6 голосов
/ 21 апреля 2011

для любого документа termFreqVector всегда равен нулю.Я уверен, что документы находятся в коллекции и поле существует.Так в чем же проблема?

для (int i = 0; i TermFreqVector tfv = reader.getTermFreqVector (i, "tags");

спасибо

1 Ответ

6 голосов
/ 21 апреля 2011

Вы уверены, что индексируете свои поля с помощью Field.TermVector.YES? Вот рабочий пример:

Directory directory = new RAMDirectory();
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);
MaxFieldLength mlf = MaxFieldLength.UNLIMITED;
IndexWriter writer = new IndexWriter(directory, analyzer, true, mlf);

Document doc = new Document();
doc.add(new Field("tags", "foo bar", Field.Store.NO,
        Field.Index.ANALYZED, Field.TermVector.YES));

writer.addDocument(doc);
writer.close();

IndexReader reader = IndexReader.open(directory);
for (int i = 0; i < reader.numDocs(); i++) {
    TermFreqVector tfv = reader.getTermFreqVector(i, "tags");
    System.out.println(tfv);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...