首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用单个查询或范围解决多个方面问题

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

Stack Overflow用户
提问于 2019-11-20 03:32:38
回答 1查看 88关注 0票数 0

我有一个图书数据库。图书的流派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岁,等等。

类似于:

代码语言:javascript
运行
复制
"facet_fields":{
      "genre_id":{
        "38":998,
        "638":915,
      "ages":{
        "0-4":4,
        "5-7":10,

以此类推。

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

EN

回答 1

Stack Overflow用户

发布于 2019-11-20 23:26:20

我有点过度思考了我的问题,我只需要使用facet查询。

代码语言:javascript
运行
复制
    facet.field=genre_id 

(获取包含计数的不同genre_ids )

代码语言:javascript
运行
复制
    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]

(获取每个年龄范围的计数)

结果是:

代码语言:javascript
运行
复制
  "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起一个“名字”,但除此之外,这是我的工作解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58941594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档