Solr可以使用函数查询termfreq( field ,'term')返回给定术语的术语频率。但是,据我所知,您无法获得模糊匹配的术语频率;您无法编写termfreq( field ,'term〜1')来获取Levenshtein距离1之内的所有术语的术语频率。
例如,假设我有两个文档1和2,其中文档1两次包含“ cats”,而文档2一次包含“ carts”并运行查询:q=cats~1&fl=id,freq: termfreq(text, cats)
,则响应将看起来像这样:
{'response': {'docs':
[{'id': 1, 'freq': 2},
{'id': 2, 'freq': 0}]
...
}
我想要的是将搜索扩展到的词的词频包含在词频中,这样响应将类似于:
{'response': {'docs':
[{'id': 1, 'freq': 2},
{'id': 2, 'freq': 1}]
...
}
在Solr中,有没有办法以相对容易的方式做到这一点?
答案 0 :(得分:0)
在Solr中执行此操作的唯一方法是对查询词的不同组合进行预处理,并使用它来查找词频。