我有一个图书数据库。图书的流派ID为整数,年龄范围也为整数age_min和age_max。
查询时,我想知道1)结果中包含不同流派ID的列表,以及2)这些结果中的任何一个都处于不同的1个或多个年龄范围(0-4、5- 7等)。
我想要一个genre_id列表,以及0-4、5-7、7-10等年龄段的书籍数量。
我可以将facet.field用作genre_ids,但效果很好,但是我不能确定除了年龄段之外,还有其他功能。
我对Just genre_id facet的查询如下:
因此,不仅要告诉我构成结果的genre_id,还要告诉我其中有多少本书的年龄在0-4、5-7等。
类似的东西:
"facet_fields":{
"genre_id":{
"38":998,
"638":915,
"ages":{
"0-4":4,
"5-7":10,
等等。
是否有一种方法可以从一个solr查询中获取所有这些信息?
答案 0 :(得分:0)
我有点想过我的问题,我只需要使用方面查询。
facet.field=genre_id
(以获取带有计数的不同genre_id)
facet.query=age_min:[*+TO+4]
facet.query=age_min:[4+TO+7]+AND+age_max:[7+TO+99]
facet.query=age_min:[7+TO+10]+AND+age_max:[10+TO+99]
facet.query=age_min:[13+TO+99]+AND+age_max:[13+TO+99]
(以获取每个年龄段的计数)
结果:
"facet_counts":{
"facet_queries":{
"age_min:[* TO 4]":6,
"age_min:[4 TO 7] AND age_max:[7 TO 99]":16},
....
"facet_fields":{
"genre_id":[
"818",740,
"51",707,
"1637",373,
....
我只希望可以给facet_queries一个“名字”,但除此之外,这是我的可行解决方案。