在solr schema.xml中添加字段

在solr schema.xml中添加字段,solr,field,Solr,Field,我正在使用solr对我的数据库进行搜索,并试图在conf/schema.xml中添加一个新字段(文章的publisher_id)以获取publisher_id的值。在对我的数据库进行搜索后,我没有找到任何与此字段等效的字段名。那么,如何将其添加为schema.xml中的一个字段,以返回文章的搜索值(正文、标题、日期和发布者id)?首先:发布者id中存储了什么样的数据? 如果它是一个数字(int,log),那么添加一个具有相应类型的字段,如: <field name="publisher_i

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

首先:发布者id中存储了什么样的数据? 如果它是一个数字(int,log),那么添加一个具有相应类型的字段,如:

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


将字段添加到schema.xml后,必须重新启动solr实例并重建索引。

请注意,动态字段添加……这两个字段都尚未发布

同时,如果您希望将字段添加到索引中,则有两个选项。首先,您可以采用艰难的方法:将字段添加到模式中,清除索引,重新启动Solr并重新编制所有内容的索引。这似乎有点站不住脚

或者,您可以使用。如果查看模式,您将看到如下行:

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

这意味着,如果您添加了一个名称以
\u i
\u is
结尾的字段,您将被设置为go。这些通常在默认模式中启用,因此如果您可以灵活地调用该字段,那么您可能已经完全准备好了


如果这两个选项看起来都不太理想,那么第三个选项是等待Solr 4.4或5.0并升级(这也很可能需要重新编制索引!)。

我尝试了它,并将其添加到select查询中,但它不起作用,选择id,标题为title,正文为date,日期为datecreated,发布者id来自添加sql语句的文章?在dataimporthandler配置中?您确定该发布者id不在索引中吗?您确定您的realey搜索在field publisher\u id中吗?例如,参数&qf=publisher\u id,*!?你能说怎么重建吗index@AnirudhJadhav有不同的方法。最简单的方法是使用solr管理界面,使用“重新加载”按钮。您也可以发送curl请求。“清除索引”的意思是删除数据目录吗?是的。那就行了。另一种方法是通过SolrAPI,但我大约90%确定它也会做同样的事情。