我有一个图书数据库。图书的流派in是整数,年龄范围也是整数age_min和age_max。
当我进行查询时,我想知道1)在结果中的不同类型‘d的列表,以及2)这些结果中的任何一个都在不同的1或更多年龄范围(0-4,5-7,等等)之间。
我想要一份genre_ids的清单,以及0-4岁、5-7岁、7-10岁等年龄段有多少本书。
我可以在genre_ids上使用facet.field,它工作得很好,但是除了不同的年龄范围之外,我不能想出有这个功能。
我对genre_id方面的查询如下所示:
http://localhost:8983/solr/core0/select/?wt=json&q=all_genres%3A%22fiction+-+fantasy%22&rows=1&start=0&defType=edismax&facet=true&facet.field=genre_id
所以,不仅要告诉我组成结果的genre_ids,还要告诉我这些书中有多少是0-4岁,5-7岁,等等。
类似于:
"facet_fields":{
"genre_id":{
"38":998,
"638":915,
"ages":{
"0-4":4,
"5-7":10,
以此类推。
有没有办法从一个solr查询中获取所有这些信息?
发布于 2019-11-20 23:26:20
我有点过度思考了我的问题,我只需要使用facet查询。
facet.field=genre_id
(获取包含计数的不同genre_ids )
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起一个“名字”,但除此之外,这是我的工作解决方案。
https://stackoverflow.com/questions/58941594
复制相似问题