一、问题描述
1.环境
solr4.10.3-cdh5.7.0(即使更高版本,如果问题类似,应该也是同样的问题)
2.问题:
在客户端代码发送solr服务器请求时,报错:
Exception in thread "main" org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: ERROR: [doc=sqoop_job_main.log] unknown field 'attr_meta'
at org.apache.solr.client.solrj.impl.HttpSolrServer.executeMethod(HttpSolrServer.java:621)
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:228)
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:224)
at solr.ReadHadoopFile.indexFilesSolrCell(ReadHadoopFile.java:65)
at solr.ReadHadoopFile.main(ReadHadoopFile.java:25)
二、问题原因
是因为在schema.xml中没有定义attr_的动态域,所以,导致程序中调用attr_开头的域无法找到对应字段的定义。在solr中,所有域的使用,都要先定义!
三、解决办法
修改schema.xml文件,添加attr_开头的动态域定义
<dynamicField name="attr_*" type="text_general" indexed="true" stored="true" multiValued="true"/>