【问题标题】:Can you do sorting and grouping for the search results in solr using the solr config files?您可以使用 solr 配置文件对 solr 中的搜索结果进行排序和分组吗?
【发布时间】:2013-09-30 04:02:04
【问题描述】:

假设索引字段包括: 产品名称 产品类别 产品发布日期

假设 solr 请求处理程序类型为 dismax。

是否可以通过使用solr配置文件schema.xml和solrconfig.xml对solr搜索引擎中的搜索结果进行排序和分组?

例如,当你搜索蜘蛛侠时,如果搜索结果返回蜘蛛侠 DVD 和蜘蛛侠漫画书的产品,它们是这样一个接一个地混合在一起的: 蜘蛛侠1,DVD 蜘蛛侠1,书 蜘蛛侠2,书 蜘蛛侠3,DVD 蜘蛛侠4,书

是否可以使用 solr 配置文件对结果进行分组,以便 dvd 彼此相邻,书籍彼此相邻?如果是的话,谁能举例说明如何做到这一点?

还可以通过使用 solr sonfig 文件将最近发布的 dvd 和书籍显示在结果的顶部来对结果进行排序吗?如果是的话,谁能举例说明如何做到这一点?

【问题讨论】:

    标签: search solr config


    【解决方案1】:

    Solr 支持Grouping(也称为字段折叠),它允许您根据产品类型对结果进行分组。
    可以将此配置作为默认值添加到 solrconfig.xml 中的请求处理程序定义中以始终应用。

    <requestHandler name="/browse" class="solr.SearchHandler">
     <lst name="defaults">
       <!-- Query settings -->
       <str name="defType">edismax</str>
       <str name="qf">
          text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
          title^10.0 description^5.0 keywords^5.0 author^2.0 resourcename^1.0
       </str>
       <str name="df">text</str>
       <str name="mm">100%</str>
       <str name="q.alt">*:*</str>
       <str name="rows">10</str>
       <str name="fl">*,score</str>
    
       <!-- Faceting defaults -->
       <str name="group">true</str>
       <str name="group.field">product_type</str>
        ...................
    
     </lst>
    </requestHandler>
    

    定义为默认值的组配置,可以通过作为参数传递来覆盖。

    有两个可用的排序参数可让您对组和组内的结果进行排序。

    排序-

    如何相对于彼此对组进行排序。例如, sort=popularity desc 将导致组根据 每个组中人气最高的文档。默认为“分数描述”。

    请注意最高流行度,因为排序取决于整个组中单个文档的最大或最新结果。

    group.sort -

    如何对单个组中的文档进行排序。默认相同 值作为排序参数。

    【讨论】:

    • 如果我添加这个requestHandler,它正在使用的requestHandler会发生什么?我将 trueproduct_type 添加到我的 requestHandler 中,结果中没有返回任何内容。
    猜你喜欢
    • 1970-01-01
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    相关资源
    最近更新 更多