我想知道您是否有人可以帮助我将产品属性存储在Solr中。我的问题是产品属性因产品类别而异。从我迄今为止所了解的内容中,我必须列出架构中的字段。属性的数量非常大,并且不断变化 - 你们建议的是什么?Solr - 模式帮助(产品属性)
例如,在衬衫产品类别可能在房地产类别大小属性,但一个有可能有卧室属性。
(我目前打算不断导入MySQL数据到Solr中,并使用Solr的大多为方位搜索)
我想知道您是否有人可以帮助我将产品属性存储在Solr中。我的问题是产品属性因产品类别而异。从我迄今为止所了解的内容中,我必须列出架构中的字段。属性的数量非常大,并且不断变化 - 你们建议的是什么?Solr - 模式帮助(产品属性)
例如,在衬衫产品类别可能在房地产类别大小属性,但一个有可能有卧室属性。
(我目前打算不断导入MySQL数据到Solr中,并使用Solr的大多为方位搜索)
您可以设置dynamic fields Solr中。在schema.xml中,在<fields>
块,您可以配置动态字段的定义是这样的:
<fields>
...
<dynamicField name="*_t" type="text" indexed="true" stored="true" multiValued="false"/>
<dynamicField name="*_s" type="string" indexed="true" stored="true" multiValued="false"/>
<dynamicField name="*_sa" type="string" indexed="true" stored="true" multiValued="true" />
<dynamicField name="*_d" type="date" indexed="true" stored="true" multiValued="false"/>
<dynamicField name="*_f" type="sfloat" indexed="true" stored="true" multiValued="false"/>
<dynamicField name="*_i" type="sint" indexed="true" stored="true" multiValued="false"/>
<dynamicField name="*_ia" type="sint" indexed="true" stored="true" multiValued="true" />
</fields>
你想可能是不同的特定设置,但是这是基本的想法。
考虑上面的第一个dynamicField
定义。它所说的是,你可以动态添加任何以_t
结尾的字段,这些字段将被视为文本字段,将被索引和存储,并将被视为单个值(与数组相对)。
您可以根据需要设置多个动态字段名称,而且对所使用的名称没有任何意义或约定。只需为每个数据类型设置一个dynamicField
定义即可。
然后,就是这样。无需定义您的特定字段,只需使用您设置的后缀即可。因此,举例来说,如果你使用上面的领域,你可以做一个插入:
category_s = 'realty'
bedrooms_i = 4
或者你可以做一个插入有:
category_s = 'shirts'
size_s = 'M'