Apache Solr topTerms (LukeRequestHandler) не дает правильное количество токенов - PullRequest
0 голосов
/ 12 ноября 2011

Я использую сборку ствола Solr 4, пару дней тому назад.

Согласно странице Wiki для LukeRequestHandler (вывод первого примера), мы должны получить число токенов для каждогоили любое указанное поле.Я хочу использовать это, чтобы подсчитать, сколько раз каждое слово появляется во всех моих документах.Например, если слово «есть» появляется в двух документах MS Word, дважды в первом и три раза во втором, я получу вывод, подобный этому:

<lst name="text">
  <str name="type">text</str>
  <str name="schema">IT-M---------</str>
  <str name="index">(unstored field)</str>
  <int name="docs">2</int>
  <int name="distinct">42</int>
  <lst name="topTerms">
    <int name="is">5</int>

Это потому, что слово «есть"происходит в общей сложности пять раз по двум документам.Однако то, что я на самом деле получаю, это <int name="is">2</int>.Я предполагаю, что это потому, что это происходит отчетливо (по документу) в общей сложности два раза.

Но, опять же, согласно вики, мы должны получить общее количество, суммированное повсе документы, это то, что я на самом деле хочу.


Как я могу получить общее количество раз, когда каждое и каждое слово во всех проиндексированных документах появляется ?


Ссылка:

http://wiki.apache.org/solr/LukeRequestHandler

1 Ответ

1 голос
/ 12 ноября 2011

Частоты документов, возвращаемые TermsComponent - это количество уникальных документов, соответствующих данному термину, включая любые документы, которые были помечены для удаления, но еще не удалены из индекса.

TermVectorComponent предоставляет информацию о документах, которая хранится при установке атрибута termVector для поля.
TVC может возвращать термин вектор, термин частота, обратная частота документа, а также информацию о местоположении и смещении.

tv.tf - возвращает информацию о частоте терминов в документе за термин в документе.

<lst name="termVectors">
  <lst name="doc-5">
    <str name="uniqueKey">MA147LL/A</str>
    <lst name="includes">
      <lst name="cable">
        <int name="tf">1</int>
      </lst>
      <lst name="earbud">
        <int name="tf">5</int>
      </lst>
      <lst name="headphones">
        <int name="tf">1</int>
      </lst>
      <lst name="usb">
        <int name="tf">1</int>
      </lst>
    </lst>
  </lst>
  ...............
</lst>
...