【问题标题】:Using Solr for indexing parameterized products使用 Solr 索引参数化产品
【发布时间】:2012-09-18 09:42:22
【问题描述】:

我们必须在我们的在线商店中准备新的搜索功能。我想知道我们可以使用 Solr。但我对此有些怀疑。我们报价中的每一个产品都是参数化的。实际上一个产品是一堆参数。它有一个符号,另一个符号,生产者,参数,参数,参数。我们拥有的关于我们产品的一切都是它们的参数。有些参数是单值,有些是多值。

是否可以索引我们的产品数据库并让我们的用户按产品参数过滤?这对我们来说非常重要,因为我们的客户已经习惯了使用高级过滤进行搜索。用多种语言索引这些参数怎么样?

感谢您的帮助!

哦,还有一件事,Solr 可以只使用单词的一部分进行搜索吗?例如,我有一个符号为 ABCDEFG 的产品。如果搜索 ABC 或 DEFG 会怎样? Solr 可以处理这样的搜索吗?

【问题讨论】:

    标签: parameters solr indexing


    【解决方案1】:

    您可以通过不同的参数字段进行过滤或分面(分面允许浏览内容 - 我想这就是您要寻找的内容)。多种语言的索引也不是问题 - 现有的支持基础设施 - 请参阅 SOLR 语言识别描述。不过需要注意的一件事 - 拥有大量字段 + 许多(数百万甚至更多)记录 + 许多方面将消耗大量内存并“可能”降低性能。 谈到 ABC 或 DEFG - 为什么不使用通配符? ABC* 或 DEFG。 ABC 可以开箱即用,*DEFG 更消耗资源并且需要特殊的分析器 - 它只是将您的字段索引到具有相反顺序的特殊字段中。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      你说的是solr facet吗? solr 有一个非常好的方面实现。看一下这个: http://wiki.apache.org/solr/SolrFacetingOverview.

      对于您的第二个问题,solr 无法处理。您必须编写自己的 lucene 分析器以在索引期间将单词拆分为多个部分。您可以在 solr schema.xml 中配置自己的分析器。您需要首先检查什么是 lucene 分析器。实现分析器并不难。尝试使用 trie 或 java 树集。或者你可以在 google 上找到一些强大的分析器实现。

      【讨论】:

      • Faceting 看起来很有希望,非常感谢 :)。这个链接特别有用 -> [链接]lucidimagination.com/Community/Hear-from-the-Experts/Articles/…。遗憾的是没有简单的方法来搜索部分单词。我会检查分析仪的方式。再次感谢您!
      • @CharlieQ 可以使用 EdgeNGramFilterFactory 实现词部分的搜索,详情请见wiki.apache.org/solr/…
      • @Paige 谢谢,这很有帮助。貌似是从lucene同义词模块衍生而来的
      猜你喜欢
      • 2012-06-15
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多