Solr:查询 Facet 并计算缺失
Solr: Query Facet and count missing
在我的 Solr 索引中,我有一个可选的日期字段。我们称它为 Property_3_1044
.
我想找到Property_3_1044
的最大值和最小值以及所有[=46]的个数=]没有那个日期的项目.
我相信分面是最好的方法。如果有更好的方法请指正!
使用Query Facets我可以使用聚合函数min
和max
分别获得最小值和最大值:
结果:
"facets":{
"count":249,
"Date1":{
"count":249,
"min":"2019-01-09T00:00:00Z",
"max":"2019-01-22T00:00:00Z"}}}
(抛开问题:如何摆脱 2 count
s?)
使用 Terms Facets 我可以使用 missing
参数查找所有没有日期的项目:
结果:
"facets":{
"count":249,
"Date2":{
"buckets":[],
"missing":{
"count":240}}}}
如何合并这两个查询?我知道我可以同时执行两者(通过连接两个查询字符串),但我想知道是否有更有效的方法。我假设同时执行查询方面和术语方面比只执行一个方面更昂贵。例如,聚合函数 missing
允许我仅使用查询方面来完成所有操作(但没有这样的方法,是吗?)。
我自己找到了解决办法;我只需要添加一个 facet 查询 q
来过滤非空值 -> [* TO *]
:
在结果中,外部计数是所有项目的数量(此处:225),内部方面计数将给出具有日期设置的项目数量,即。应用 q
后(此处:9):
"facets":{
"count":225,
"Date1":{
"count":9,
"min":"2019-01-09T00:00:00Z",
"max":"2019-01-22T00:00:00Z"}}}
没有日期的项目数是差值(225-9=216)。
在我的 Solr 索引中,我有一个可选的日期字段。我们称它为 Property_3_1044
.
我想找到Property_3_1044
的最大值和最小值以及所有[=46]的个数=]没有那个日期的项目.
我相信分面是最好的方法。如果有更好的方法请指正!
使用Query Facets我可以使用聚合函数min
和max
分别获得最小值和最大值:
结果:
"facets":{
"count":249,
"Date1":{
"count":249,
"min":"2019-01-09T00:00:00Z",
"max":"2019-01-22T00:00:00Z"}}}
(抛开问题:如何摆脱 2 count
s?)
使用 Terms Facets 我可以使用 missing
参数查找所有没有日期的项目:
结果:
"facets":{
"count":249,
"Date2":{
"buckets":[],
"missing":{
"count":240}}}}
如何合并这两个查询?我知道我可以同时执行两者(通过连接两个查询字符串),但我想知道是否有更有效的方法。我假设同时执行查询方面和术语方面比只执行一个方面更昂贵。例如,聚合函数 missing
允许我仅使用查询方面来完成所有操作(但没有这样的方法,是吗?)。
我自己找到了解决办法;我只需要添加一个 facet 查询 q
来过滤非空值 -> [* TO *]
:
在结果中,外部计数是所有项目的数量(此处:225),内部方面计数将给出具有日期设置的项目数量,即。应用 q
后(此处:9):
"facets":{
"count":225,
"Date1":{
"count":9,
"min":"2019-01-09T00:00:00Z",
"max":"2019-01-22T00:00:00Z"}}}
没有日期的项目数是差值(225-9=216)。