2013-10-13 68 views
0

我的数据库模型是使用动态属性(实体属性值模型)设计的。 对于数据库我有一个服务,添加一个新的属性。 但每次添加新的属性,我需要将它添加到schema.xml动态添加字段到solr

是否有一种可能的方式来动态地添加字段到solr schama.xml?
谢谢。

回答

1

一种可能的方法是根据动态属性命名特征配置一组<dynamicField/>

使用dynamicField,您可以创建字段规则,Solr将使用该字段规则来了解在给定的字段名称未明确定义但与dynamicField中使用的前缀或后缀匹配时应使用哪种数据类型。

限制:名称属性中的glob-like模式只能在开始或结束时具有“*”。

<dynamicField name="fm_*" type="float" indexed="true" stored="true" multiValued="true"/> 

name="fm_*"将匹配任何以fm_ *开头的字段。更长的模式将首先匹配。如果相同大小的模式都匹配,则将使用模式中出现的第一个模式。

通过这样做,下一步就是在属性命名服务中创建一个规则:根据类型的名称在属性名称前添加一个前缀(或附加后缀)(您可能需要关注字段类型高效的映射)。在这个例子中,“fm_”对应浮动多值字段。