collection1:org.apache.solr.common.SolrException:org.apache.solr.common.SolrException:字段Report_Name上指定的未知字段类型'text'

时间:2014-04-09 11:12:27

标签: xml solr

我按照http://www.sunilgulabani.com/2013/01/import-mysql-database-with-apache-solr.html中的说明进行操作。我已将 data-config.xml 修改为: -

<dataConfig>
    <dataSource driver="sun.jdbc.odbc.JdbcOdbcDriver" type="JdbcDataSource"
       url="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + "C:\\users\\ppreeti\\executive_db.accdb" user="" password="" />
    <document name="products">
       <entity name="Report" query="select * from Report">
           <field column="Report_Name" name="Report_Name" />
           <field column="Report_ID" name="Report_ID" />
           <field column="Section_ID" name="Section_ID" />
           <field column="Contact_ID" name="Contact_ID" />
           <field column="ZipFile_IND" name="ZipFile_IND" />
           <field column="Last_Update" name="Last_Update" />
           <field column="Link" name="Link" />
           <field column="link_id" name="link_id" />
           <!--<entity name="Contact" query="select Contact_Name from Contact where item_id='${item.ID}'">
               <field name="features" column="description" />
           </entity>
           <entity name="item_category" query="select CATEGORY_ID from item_category where item_id='${item.ID}'">
               <entity name="category" query="select description from category where id = '${item_category.CATEGORY_ID}'">
                   <field column="description" name="cat" />
               </entity>
           </entity>-->
       </entity>
    </document>
</dataConfig> 

我也没有按照教程中提到的步骤4,因为我正在访问MS Access数据库,我发现它是内置的。

我还修改了 schema.xml ,然后通过在标记之前添加以下行来修改 schema.xml : -

<fields>

    <field name="Report_Name" type="text" indexed="true" stored="true" required="true"/>
    <field name="Report_ID" type="text" indexed="true" stored="true" required="true"/>
    <field name="Section_ID" type="text" indexed="true" stored="true" required="true"/>
    <field name="Contact_ID" type="text" indexed="true" stored="true" required="true"/>
    <field name="ZipFile_IND" type="text" indexed="true" stored="true" required="true"/>
    <field name="Last_Update" type="text" indexed="true" stored="true" required="true"/>
    <field name="Link" type="text" indexed="true" stored="true" required="true"/>
    <field name="link_id" type="text" indexed="true" stored="true" required="true"/>


    <dynamicField name="*" type="ignored" />
 </fields>

 <uniqueKey>Report_ID</uniqueKey>
 <!-- field for the QueryParser to use when an explicit fieldname is absent -->
 <defaultSearchField>Report_Name</defaultSearchField>

所以,当我按照步骤5中的描述在浏览器上运行时,我得到的错误是: - collection1:org.apache.solr.common.SolrException:org.apache.solr.common.SolrException:字段Report_Name上指定的未知字段类型'text'

那么,我该如何解决错误?

1 个答案:

答案 0 :(得分:0)

不再在默认的solrconfig.xml文件中定义了text的fieldType。尝试更改schema.xml文件中的所有字段以使用type="text_general",因为这是当前solrconfig.xml文件中的合适替代。

我还建议您查看安装中的solrconfig.xml文件,并阅读Solr Wiki上的Analyzers, Tokenizers, and Token Filters页面,以便更好地了解fieldType定义的设置方式。