2009-12-17 5 views

Répondre

1

SpanTermQuery.getSpans donnera une énumération des documents et où les termes apparaissent. Les documents sont triés, de sorte que vous pouvez simplement compter le nombre de fois que chaque document apparaît, en ignorant les informations de position.

5

Lucene utilise un index basé sur un champ plutôt que sur un document. Afin d'obtenir compte à terme par document:

  1. itérer sur des documents en utilisant IndexReader.document() et isDeleted().
  2. Dans le document d, parcourez les champs en utilisant Document.getFields().
  3. Pour chaque champ f, obtenez des termes en utilisant getTermFreqVector().
  4. Passez en revue le terme vecteur et les fréquences de somme par termes.
  5. La somme des fréquences de termes par champ vous donnera le vecteur de fréquence de terme du document.
+1

+1. Vous devrez peut-être considérer les transformations radicales et autres que le texte a subies. Par exemple, si vous avez recherché le mot «beauté» sur un champ en colonnes, le terme réel de l'index serait «beauti». –

Questions connexes