我目前正在开发一个solr应用程序来索引我们电子商务网站上的产品。
架构中的一些示例字段是:
属性是键值对的列表。 例如:
Type = Rose
位置=全太阳
位置=阴影
颜色=红色
我将存储字段,以便可以从搜索结果生成我的页面。
如何最好地代表这些?
我在想可能有一些动态字段用于索引: attribute_ *例如(attribute_position) 然后存储值的“属性”(用于返回,用于显示) - 存储多个字段 “属性”字段的值可以是(例如)Position | Full Sun - 然后让客户端处理显示?
有没有更好的方法呢?
作为脚注 - 我将使用Solrnet作为查询客户端(可能不相关)
答案 0 :(得分:2)
首先,我不建议将整个文档存储在搜索引擎中。您应该在Solr中存储的唯一内容是您要搜索的内容。是的,它支持存储更多,但是,利用这个可能会导致索引大小,主/从复制时间等问题。理想情况下,Solr中唯一的东西是你想要搜索/排序的东西和文档ID非常独特,可以从另一个为存储....文档而优化的源中获取文档数据。
但是,如果您决定忽略此建议,则可以轻松地将名称值对存储在单个字段中。如果您的名称值对具有有限的字符集,则可以轻松地将名称值对连接成单个字符串。然后,在构建要显示的网页时解析它们。没有必要提出更复杂的架构来支持这一点。用于存储这些字段的多个字段只会增加您的索引开销,而不会为您购买任何内容。