Solr - 将属性作为键/值对的索引产品

时间:2011-05-25 17:46:59

标签: solr

我目前正在开发一个solr应用程序来索引我们电子商务网站上的产品。

架构中的一些示例字段是:

  • ProductID
  • ProductName
  • 说明
  • 价格
  • 类别(多值)
  • 属性

属性是键值对的列表。 例如:

Type = Rose
位置=全太阳
位置=阴影
颜色=红色

我将存储字段,以便可以从搜索结果生成我的页面。

如何最好地代表这些?

我在想可能有一些动态字段用于索引: attribute_ *例如(attribute_position) 然后存储值的“属性”(用于返回,用于显示) - 存储多个字段 “属性”字段的值可以是(例如)Position | Full Sun - 然后让客户端处理显示?

有没有更好的方法呢?

作为脚注 - 我将使用Solrnet作为查询客户端(可能不相关)

1 个答案:

答案 0 :(得分:2)

首先,我不建议将整个文档存储在搜索引擎中。您应该在Solr中存储的唯一内容是您要搜索的内容。是的,它支持存储更多,但是,利用这个可能会导致索引大小,主/从复制时间等问题。理想情况下,Solr中唯一的东西是你想要搜索/排序的东西和文档ID非常独特,可以从另一个为存储....文档而优化的源中获取文档数据。

但是,如果您决定忽略此建议,则可以轻松地将名称值对存储在单个字段中。如果您的名称值对具有有限的字符集,则可以轻松地将名称值对连接成单个字符串。然后,在构建要显示的网页时解析它们。没有必要提出更复杂的架构来支持这一点。用于存储这些字段的多个字段只会增加您的索引开销,而不会为您购买任何内容。