java – Solr中的单词频率

我试图使用solr获得单词的频率.当我提出这个问题:

localSolr/solr/select?q=someQuery&rows=0&facet=true&facet.field=content&wt=xml

solr给我频率像;

<lst name="facet_counts">
<lst name="facet_queries"/>
<lst name="facet_fields">
<lst name="content">
<int name="word1">24</int>
<int name="word2">12</int>
<int name="word3">8</int>

但是当我算上这些话时;我发现word2的实际计数是13. Solr将字段中的相同单词计为一个.

例如;

字段文本包括; word2 word5 word7 word9 word2. Solr不返回word2的计数数字2,而是返回1.对于下面两个句子的word2计数,它返回1;

word2 word10 word11 word12
word2 word9 word7 word2 word23

所以频率错误地返回.我检查了facet字段但没有找到适当的参数.如何修复它以便在句子中计算相同的单词?

编辑:
schema.xml的相关部分:

<fieldType name="text_tr" class="solr.TextField" positionIncrementGap="100">
    <field name="content" type="text_tr" stored="true" indexed="true" multiValued="true"/>
    <copyField source="content" dest="text"/>
    <field name="text" type="text_tr" stored="false" indexed="true" multiValued="true"/>

最佳答案 如果您正在进行的字段是多值的,则构面中的每个字都会获得正确的计数

我忘了提一件事:Term Vector Component会把你送到你需要的地方

在查询中,tv.tf将为您提供每个术语的术语频率,而tv.fl告诉solr应在哪些字段中计算频率

NB这使你的索引时间比现在慢(aka:你必须尝试)

点赞