在solr schema.xml中添加字段

时间:2011-07-13 13:06:28

标签: solr field

我正在使用solr对我的数据库进行搜索,并且我正在尝试在conf / schema.xml中添加一个新字段(文章的publisher_id)以在我的数据库上搜索后获取publisher_id的值,我没有找不到与此字段等效的任何字段名称。那么如何将它作为一个字段添加到schema.xml中,以便与文章的搜索值(正文,标题,日期和发布商ID)一起返回?

2 个答案:

答案 0 :(得分:9)

首先:在publisher_id中存储了哪种数据? 如果它是一个数字(int,log),那么添加一个具有相应类型的字段,如:

<field name="publisher_id" type="int" indexed="true" stored="true" />

在schema.xml中添加字段后,必须重新启动solr-instance并重建索引。

答案 1 :(得分:3)

请注意,动态字段添加have been added in Solr 4.4 and Solr 5.0 ...尚未发布。

与此同时,如果您希望在索引中添加字段,则有两个选项。首先,您可以采取艰难的方式:将字段添加到架构中,清除索引,重新启动Solr并重新索引所有内容。这往往有点站不住脚。

或者,您可以使用dynamic field declaration。如果你查看架构,你会看到这样的行:

<dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>
<dynamicField name="*_is" type="int"    indexed="true"  stored="true"  multiValued="true"/>

这意味着如果您添加名称以_i_is结尾的字段,您将全部开始使用。这些通常在默认架构中启用,因此如果您对调用该字段的内容有灵活性,则可能都设置了这个。

如果这两个选项看起来都没有用,那么你的第三个选择是等待Solr 4.4或5.0并升级(这也很可能会重新索引!)。