Solr 动态价格范围和组

标签 solr

跟进问题

  • How to get facet ranges in solr results?
  • SolR Query - Price ranges

  • 如果我理解正确,要获得 Solr 中每个价格区间的匹配数,可以使用以下不同的方法:
  • 每个静态价格区间:
  • facet.range
  • facet.query
  • 每个动态价格区间
  • 有 Solr JIRA 来获取动态构面间隔:Solr JIRA 1581: Facet by function

  • 只获得最低价格和最高价格:
  • 对于整个指数的“价格”字段:StatsComponent

  • 现在我的问题是:我可以让结果分组工作正常,但如何获得每个组的最低和最高价格 (&group=true)。是否有与之相关的 Solr JIRA?

    Lucene JIRA 3097: Post group faceting does在全局方面而不是在“每组”结果中呈现结果。

    最佳答案

    Solr 版本:5.4 及以上。

    我对此有一个解决方案,并且已在我的项目中实现。

    您必须使用 json facet 来根据 facet 结果获得最大值和最小值。

        json.facet={
       tags_group:{
          type:terms,
          field:tags,
          limit:-1,
          facet:{
             pricemin:{
                type:terms,
                field:price,
                limit:1,
                sort:{
                   x:asc
                },
                facet:{
                   x:"min(price)"
                }
             },
             pricemax:{
                type:terms,
                field:price,
                limit:1,
                sort:{
                   y:desc
                },
                facet:{
                   y:"max(price)"
                }
             }
          }
       }
    }
    

    在上面的 Json facet 中,我使用了标签作为归档(多值),这将创建一个这样的存储桶
    <str name="val">Letter Holder</str>
    <int name="count">2</int>
    <lst name="pricemin">
        <arr name="buckets">
            <lst>
                <double name="val">899.0</double>
                <int name="count">1</int>
                <double name="x">899.0</double>
            </lst>
        </arr>
    </lst>
    <lst name="pricemax">
        <arr name="buckets">
            <lst>
                <double name="val">1299.0</double>
                <int name="count">1</int>
                <double name="y">1299.0</double>
            </lst>
        </arr>
    </lst>
    

    关于Solr 动态价格范围和组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7255696/

    相关文章:

    mysql - 基本 Solr 查询和数据结构

    c# - 我可以重复使用 Tridion 附带的 SOLR 实例吗?

    java - 如何使用Solr索引整个C盘

    search - SolrException : Internal Server Error

    solr - Solr高亮显示:提取完整句子

    java - spring-data-solr java.lang.IllegalArgumentException : Not a managed type

    php - 如何知道 Solr 搜索在 Magento CE 中的工作原理

    lucene - 使用 Solr 进行语义分析

    java - 如何在 java 中配置和使用 KStem?

    ruby-on-rails - 将带有 sunspot 的 Rails 应用程序连接到经过授权的 tomcat/solr 服务器