我在Solr中有一个索引,其中包含以下字段:
name
address
mobile
email
所有字段都是text_general
类型。问题是,在某些项目中,某些字段丢失,我想计算这些字段。因此,例如,这里是索引上的一个项目,只有以下两个字段:
name
address
因此,例如,我想计算填充了name
字段的项目总数(即该项目中存在名称)。
我认为这听起来微不足道,但阅读文档时,我不确定如何制定这样的查询。
我已经尝试过了,感谢@MatsLindh -在这里我正在搜索所有带有full_name
字段的项目,所有项目都有:
>>> requests.get('http://localhost:8984/solr/solr_search_service/select', params={
... 'facet': 'true',
... 'facet.query': 'full_name:[* TO *]',
... 'wt': 'json',
... 'rows': 2,
... 'start': 0,
... }).json()
{'responseHeader': {'status': 0, 'QTime': 10, 'params': {'facet.query': 'full_name:[* TO *]', 'start': '0', 'rows': '2', 'facet': 'true', 'wt': 'json'}}, 'response': {'numFound': 0, 'start': 0, 'numFoundExact': True, 'docs': []}, 'facet_counts': {'facet_queries': {'full_name:[* TO *]': 0}, 'facet_fields': {}, 'facet_ranges': {}, 'facet_intervals': {}, 'facet_heatmaps': {}}}
但不知何故给了我零作为计数:(
1条答案
按热度按时间vql8enpb1#
您可以使用分面来获取所需的每个字段的计数,而不必对每个情况进行单独的查询。
通过使用
facet.query
,您可以在从主查询(q
)返回的文档中运行单个查询。您可以给予多个facet.query
参数,有效地创建有多少文档错过每个字段的计数(如果您想首先过滤文档集,请在q
中给出一个查询-例如“有多少在tag
字段中具有abc
的文档缺少名称”)。