一、問題描述
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"/>