当我向solr发出查询时,我希望通过solr结果对象返回搜索词命中计数。我尝试在solrconfig中使用术语矢量选项,但是这还没有返回计数。
我正在使用pysolr来关闭来自我的django站点的请求,我已经在python中编写了一个方法来根据结果对象的突出显示部分中返回的标记数来执行术语计数。然而,这不能很好地扩展(使用正则表达式对数百万个文档结果),因此我寻找替代解决方案。
我希望solr返回某种字典,文档作为键,术语计数作为值,类似于返回突出显示值的方式。如果可以,我需要在solrconfig中编辑什么?如果没有,除了使用正则表达式之外,还有更好的方法来进行术语计数吗?
进行计数的当前函数 -
comp_doc = []
for k, v in results.iteritems():
reg = re.findall('<em class="highlighting">(.*?)</em>', str(v.values()).lower())
counter = dict(Counter(reg))
comp_dict = {}
comp_dict['terms'] = counter
comp_dict['key'] = k
comp_doc.append(comp_dict)
return comp_doc
感谢您的帮助