如果我在SOLR索引中搜索单词,我会得到包含该单词的文档的文档计数,但如果该单词在文档中包含的次数较多,则每个文档的总计数仍为1。
我需要为每个返回的文档计算他们在字段中搜索到的单词的次数。
我阅读Word frequency in Solr和SOLR term frequency并启用了术语向量组件,但它不起作用。
我以这种方式配置了我的字段:
<field name="text_text" type="textgen" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true" />
但是,如果我进行以下查询:
http://localhost:8888/solr/sources/select?q=text_text%3A%22Peter+Pan%22&fl=text_text&wt=json&indent=true&tv.tf
我没有任何统计数据:
{
"responseHeader":{
"status":0,
"QTime":1,
"params":{
"fl":"text_text",
"tv.tf":"",
"indent":"true",
"q":"text_text:\"Peter Pan\"",
"wt":"json"}},
"response":{"numFound":12,"start":0,"docs":[
{
"text_text":"Text of the document"},
{
"text_text":"Text of the document"},
{
"text_text":"Text of the document"},
{
"text_text":"Text of the document"},
{
"text_text":"Text of the document"},
{
"text_text":"Text of the document"},
{
"text_text":"Text of the document"},
{
"text_text":"Text of the document"}]
}}
我看到“numFound”值为12,但在所有12个文档中包含“Peter Pan”字样20次。
你能帮我找一下我错的地方吗?
非常感谢!
答案 0 :(得分:0)
我认为首先你的例子是行不通的,因为“彼得潘”不是一个词或术语 - 这是一个短语。对于找到短语频率的挑战的一个很好的讨论在这里:
我会用一个单词而不是短语重新尝试你的例子,看看它是否适合你。
答案 1 :(得分:0)
尝试在响应中创建术语频率的这种结构:
http://localhost:8983/solr/core/select?indent=on&q=solr&fl=field,termfreq("field","term")&wt=json