【问题标题】:Retrieving distinct documents from Solr从 Solr 检索不同的文档
【发布时间】:2014-01-31 17:08:41
【问题描述】:

我很难解释和找到我需要的东西,所以请暂时设身处地为我着想。

我的要求来自关系数据库背景。我可能正在使用 Solr 来做一些它原本不打算做的事情,或者它可以做我需要的事情,我仍然需要确认这一点。希望你能帮助我。

在将大量文档索引到 Solr 之后。我需要根据过滤器检索不同的文档。只需将其视为在应用 WHERE 条件的同时检索不同的行。

例如,在关系数据库中,我可能有以下列

(Country)  (City)     (Whatever)
 Egypt      Cairo      Hospitals
 Egypt      Alex       Schools
 Egypt      Mansoura   Hospitals
 Egypt      Cairo      Schools

如果我执行此查询:SELECT DISTINCT Country, City FROM mytable

我应该得到以下行

(Country)  (City)
 Egypt      Alex
 Egypt      Mansoura
 Egypt      Cairo

现在索引原始表 (SELECT * FROM mytable) 后,如何实现 Solr 的 SAME 输出?如何通过说我需要这些文档基于某些字段distinct来检索文档?我还需要为特定字段应用 not null 过滤器。

我不需要任何类型的统计数据,我只需要获取文档。

我希望我已经足够清楚了。感谢您的宝贵时间。

【问题讨论】:

    标签: solr distinct solr4 distinct-values


    【解决方案1】:

    这可以通过field collapsing 按多个字段分组来实现,但不幸的是,目前仅支持一个字段。有一个open issue,看看吧。

    【讨论】:

    • 感谢您只是回答问题,但也支持官方链接。
    【解决方案2】:

    你尝试过 facet 吗? 你应该这样做:

    http://localhost:8983/solr/select/?q=*:*&facet=on&facet.field=city&facet.field=country
    

    他会归还你所有的城市(有一个独特的)和他的伯爵。 Here 如果您想了解更多信息,请访问 wiki。

    希望对你有所帮助。

    【讨论】:

    • 这将分别返回每个字段的不同值。我需要检索不同的文档。
    【解决方案3】:

    Solr 4 提供的另一个很好的解决方案是基于Pivot (Decision Tree) Faceting

    尝试:

    /solr/collection1/select?q=*:*&facet=true&facet.pivot=Country,City
    

    这应该返回:

      "facet_counts" : {
            "facet_queries" : {},
            "facet_fields" : {},
            "facet_dates" : {},
            "facet_ranges" : {},
            "facet_pivot" : {
               "Country,City" : [ {
                     "field" : "Country",
                     "value" : "Egypt",
                     "count" : 4,
                     "pivot" : [ {
                           "field" : "City",
                           "value" : "Cairo",
                           "count" : 2
                     }, {
                           "field" : "City",
                           "value" : "Alex",
                           "count" : 1
                     }, {
                           "field" : "City",
                           "value" : "Mansoura",
                           "count" : 1
                  } ]
               } ]
            }
      }
    

    【讨论】:

      猜你喜欢
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2017-03-05
      • 1970-01-01
      • 2011-05-20
      • 2017-01-18
      相关资源
      最近更新 更多