5

我正在尝试使用 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 将字段中的相同单词计数为 1。

例如;

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

word2 word10 word11 word12
word2 word9 word7 word2 word23

所以频率返回错误。我已经检查了方面字段,但没有找到合适的参数。我该如何解决它,以便它在句子中计算相同的单词?

编辑: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"/>
4

2 回答 2

3

如果您正在分面的字段是多值的,那么分面中的每个单词都会得到正确的计数

我忘了提一件事:词向量组件会带你到你需要的地方

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

注意,这会使您的索引时间比现在慢(又名:您必须尝试一下)

于 2012-10-23T13:30:47.140 回答
0

使用卢克请求处理程序

http://localhost:8983/solr/admin/luke?fl=YOUR_TEXT_FIELD&numTerms=500

更多信息:http ://wiki.apache.org/solr/LukeRequestHandler

于 2012-10-23T16:20:30.053 回答