使用单个查询或范围解决多个方面


我有一个图书数据库。书籍的类型id为整数,年龄范围为整数age_min和age_max。

当我进行查询时,我想知道1(结果中不同类型ID的列表,2(这些结果中的任何一个都在不同的1个或多个年龄范围(0-4、5-7等(之间

我想要一份genre_id的列表,以及有多少本书适合0-4岁、5-7岁、7-10岁等等

我可以使用facet.field作为genre_id,这很好,但我不知道除了不同的年龄范围之外还有什么。

我对JUST genre_id方面的查询如下:

http://localhost:8983/solr/core0/select/?wt=json&q=all_genres%3A%22小说+-+幻想%22&行=1&start=0&defType=edismax&facet=true&facet.field=genre_id

因此,不仅要告诉我构成结果的genre_id,还要告诉我这些书中有多少是0-4、5-7等年龄段的

类似于:

"facet_fields":{
"genre_id":{
"38":998,
"638":915,
"ages":{
"0-4":4,
"5-7":10,

等等。

有没有办法从一个solr查询中获得所有这些信息?

我想得太多了,我只需要使用facet查询。

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一个"名称",但除此之外,这是我的工作解决方案。

相关内容

  • 没有找到相关文章

最新更新