0

我正在使用几天前的 Solr 4 主干构建。

根据 LukeRequestHandler 的 Wiki 页面(第一个示例输出),我们应该获取每个或任何指定字段的令牌计数。我想用它来计算我所有文档中每个单词出现的次数。例如,如果单词“is”出现在两个 MS Word 文档中,第一个出现两次,第二个出现 3 次,我会得到如下输出:

<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>

这是因为“is”这个词在两​​个文档中总共出现了五次。但是我实际得到的是<int name="is">2</int>. 我认为这是因为它明显地(按文档)总共发生了两次。

但同样,根据 Wiki,我们应该得到一个总计数,将所有文档相加,这正是我真正想要的。


如何获得所有索引文档中每个单词出现的总次数


参考:

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

4

1 回答 1

1

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>
于 2011-11-12T17:22:46.293 回答