【问题标题】:Grouping results and keeping facet counts consistent对结果进行分组并保持构面计数一致
【发布时间】:2011-08-30 02:54:05
【问题描述】:

使用 Solr 3.3
密钥商店 项目名称 描述 类别 价格
==================================================== ========================
1 店铺名称 Xbox 360 不错的游戏机 电子游戏 199.99
2 店铺名称 Xbox 360 不错的游戏机 电子游戏 199.99
3 店名 Xbox 360 不错的游戏机 电子游戏 249.99

我有类似于上表的数据并加载到 Solr。项目名称, 描述类别,价格可搜索。

预期结果

Facet Field         
 Category             
   Electronic(1)   
   Games(1) 

 **Store Name** 
 XBox 360 Nice game machine priced from 199.99 - 249.99

我可以发送到 Solr 以接收上述结果的查询参数是什么,基本上我想按 Store、ItemName、Description 和 min max price 分组

而且我想保持分页与主 (StoreName) 一致。分页应基于 Store Name 组。因此,如果找到 20 家商店。我应该能够正确分页。

请推荐

【问题讨论】:

    标签: solr lucene full-text-search search-engine fieldcollapsing


    【解决方案1】:

    如果使用 Solr 4.0,当您添加参数“group.facet=true”时,新的“Grouping”(取代 FieldCollapsing)修复了这个问题。

    因此,要将您的字段分组,您需要在搜索请求中添加以下参数:

    group=true         // Enables grouping
    group.facet=true   // Facet counts to be number of groups instead of documents
    group.field=Store  // Groups results by the field "Store"
    group.ngroups=true // Tells Solr to return the number of groups found
    

    找到的组数是您将显示给用户并用于分页的,而不是正常的总数,即索引中的文档总数。

    【讨论】:

    • group.facet 对于大约 25M 记录和 20GB 大小的索引效率极低(这里,没有 group.facet 的查询大约需要 1-2 秒,启用此选项需要 >25 秒)
    【解决方案2】:

    您是否研究过场塌陷?这是 Solr 3.3 中的新功能。

    http://wiki.apache.org/solr/FieldCollapsing

    【讨论】:

    • 我试过了,但是 Facet 计数不正确。结果计数仍显示 4 而不是 1,但结果已分组。不知道如何对方面、分页等进行清晰计数。
    【解决方案3】:

    我所做的是我创建了另一个字段,将所需字段分组到一个字段中并存储它,问题解决了,所以现在我只在那个字段上分组,我得到了正确的计数。

    【讨论】:

      猜你喜欢
      • 2018-01-27
      • 1970-01-01
      • 2014-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-06
      相关资源
      最近更新 更多