【问题标题】:Count number of remaining results with Solr使用 Solr 计算剩余结果的数量
【发布时间】:2016-12-22 10:15:02
【问题描述】:

我有一个包含汽车的数据库,我想创建过滤器以让用户更快地搜索它们。我以前曾与 Solr 合作过,但我从未使用过构面。

过滤器应该像这样工作:

  • 品牌
    • 宝马 (4)
    • 大众 (5)
    • 丰田 (6)
  • 颜色
    • 红色 (4)
    • 蓝色 (3)
    • 黄色 (2)
    • 绿色 (3)
    • 白色 (3)
  • 类型
    • 运动 (5)
    • 轿车 (10)

如果用户选择了一个,结果应该是这样的:

  • 品牌
    • 宝马 (1)
    • 大众 (2)
    • 丰田 (1)
  • 颜色
    • 红色 (4)
    • 蓝色 (-)
    • 黄色 (-)
    • 绿色 (-)
    • 白色 (-)
  • 类型
    • 运动 (1)
    • 轿车 (3)

使用 Solr 归档此类内容的最佳方式是什么? Facets 会是完美的吗?我做了一些研究,但我没有找到任何显示这种功能的文档。这种过滤有名称吗?感谢您的帮助。

【问题讨论】:

    标签: search solr filter


    【解决方案1】:

    是的,使用 Solr 方面可以实现这一点。 将字段名称赋予facets.field

    将您的文档索引到 Solr。您可以将一些链接称为this,以将您的数据库数据索引到 Solr。索引后,与构面组件一起查询。

    例子:

    http://localhost:8983/solr/collection/select?indent=on&q=*:*&wt=json&facet=true&facet.field=cat
    

    向下滚动查看分面结果,如下所示。

    "facet_fields":{
          "cat":[
            "book",17,
            "electronics",12,
            "paperback",6,
            "currency",4,
            "memory",3,
            "connector",2,
            "graphics card",2,
            "hard drive",2,
            "search",2,
    

    【讨论】:

    • 所以默认情况下方面计数?一定是错过了。感谢分配!我试试看。
    • 是的。 facet.field 会帮助你。如果您觉得有用,请点赞或接受我的回答。谢谢。
    • 您为我指明了正确的方向。但不知何故,我无法显示一个以上的类别。你能告诉我一个例子如何使这个工作与两个或多个相互依赖的类别一起工作吗?就像我在我的例子中一样。
    • 我刚刚想通了!您必须将附加字段作为附加变量放入字符串中。效果很好!感谢您的帮助。
    • 添加多个参数facet.field。在您的情况下,它可能类似于facet.field=Brands&facet.field=Colors&facet.field=Types
    猜你喜欢
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 2010-11-13
    相关资源
    最近更新 更多