【发布时间】:2017-03-08 09:11:21
【问题描述】:
我正在使用 Lucene 为电子商务应用程序编制索引/搜索产品目录。
一个产品可以映射到任意数量的类别。
我们需要为每个类别中的产品列表维护默认排序顺序。因此,对于每个映射类别,产品可能具有不同的订单索引。
在类别中搜索产品列表时,如何使用默认排序顺序对映射的产品进行排序?
【问题讨论】:
标签: search solr lucene e-commerce faceted-search
我正在使用 Lucene 为电子商务应用程序编制索引/搜索产品目录。
一个产品可以映射到任意数量的类别。
我们需要为每个类别中的产品列表维护默认排序顺序。因此,对于每个映射类别,产品可能具有不同的订单索引。
在类别中搜索产品列表时,如何使用默认排序顺序对映射的产品进行排序?
【问题讨论】:
标签: search solr lucene e-commerce faceted-search
您可以通过为每个排序顺序设置一个单独的字段来实现这一点,例如category_motherboards_sort 带有该文档的索引值。这里唯一的问题是你必须小心你排序的总字段数,因为一段时间后你可能会得到一个非常大的 FieldCache - 但具体如何工作将取决于你的 Lucene 版本重新使用。使用 DocValues 应该可以降低大部分成本。
如果这仍然是一个问题,您通常可以通过检索该类别的所有文档来解决它,然后在您的应用程序层中进行排序。这对于非常稀疏的字段非常有用,因为该字段仅占文档总数的一小部分。
如果需要,我会先尝试第一个选项并分析内存使用情况,然后再实施另一个选项。
【讨论】: