【问题标题】:How to nested sort in solr query?如何在 solr 查询中进行嵌套排序?
【发布时间】:2019-07-01 18:53:31
【问题描述】:

假设我有类似的字段和值

Field : value
sku : xxx
Seller : true
Name : "Elux"

查询会像

sku:"xxx"

在此结果中,我需要将名称 (Elux) 排在顶部的产品与卖家 (true) 排在顶部 并且我需要产品名称应按字母顺序排序,卖家(假)和底部的 Elux 以外的名称也是如此。 solr 可以做到这一点吗?

【问题讨论】:

  • sort=Seller desc, Name?
  • 对不起,我的问题是,我想对名称(elux)在顶部和卖家(true)在顶部的产品进行排序,并且该产品中的产品应按字母顺序排序。

标签: sorting solr lucene solr-query-syntax


【解决方案1】:

您可以使用与shown in this answer by Alexandre 相同的策略,但您必须根据需要对其进行调整。比如:

&sort=query(Name:Elux, 0) desc, query(seller:true, 0) desc, Name asc

.. 应该可以。不过,不确定这两个 query 调用的性能。

更新:

您必须使用 Alexandre 在他的回答中描述的占位符:

sort=query($manu_sort,0) desc, query($seller_sort,0) desc, ManufacturerName asc
&manu_sort=ManufacturerName:Champ
&seller_sort=BestSeller:true

【讨论】:

  • 当我使用 "&sort=query(Name:Elux, 0) desc" "无法确定排序规范中的排序顺序 (asc 或 desc) 'query(Name:Elux , 0) desc', pos=16"
  • 您可能必须在查询周围使用“”,或者使用带有占位符的链接答案中描述的方法。试试看,如果有效,我会更新答案,如果无效,我会删除它。
  • 这个查询是如何工作的 "query(Name:Elux, 0) desc" 你能解释一下它似乎对我有用。感谢您的宝贵时间
  • 我收到类似“无法将排序参数解析为查询”的错误
  • 正如我在之前的评论中提到的,尝试在查询周围使用",或使用 Alexandre 链接答案中所示的占位符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多