2012-04-02 48 views
0

我遇到了一個我似乎無法過去的問題。每當我開始Solr的,我得到一個錯誤:SolrException未知字段類型

org.apache.solr.common.SolrException: Unknown fieldtype 'int_us' specified on field partId 
at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:501) 
at org.apache.solr.shcema.IndexSchema.<init>(IndexSchema.java:125) 
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:461).... 

我Schema.xml文件看起來是這樣的:

<schema name="parts" version 1.5> 
    <type> 
    <fieldType name="text_en_US" class="solr.TextField" sortMissingLast="true"> 
     <analyzer type="index"> 
     <tokenizer class="solr.StandardTokenizerFactory" /> 
     <filter class="solr.LowerCaseFilterFacroty" /> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt" enablePositionIncrements="true" /> 
     <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false" /> 
     <filter class="solr.SnowballPorterFilterFactory" language="English" /> 
     <filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone" inject="true" /> 
     <filter class="solr.RemoveDuplicatesTokenFilterFactory" /> 
     </analyzer> 
     <analyzer type="query"> 
     <tokenizer class="solr.StandardTokenizerFactory" /> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt" enablePositionIncrements="true" /> 
     <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" /> 
     <filter class="solr.LowerCaseFilterFactory" /> 
     <filter class="solr.SnowballPorterFilterFacroty" language="English" /> 
     </analyzer> 
    </fieldType> 
    <fieldType name="string_en_US" class="solr.StrField"></fieldType> 
    <fieldType name="int_us" class="solr.IntField"></fieldType> 
    </type> 
    <fields> 
    <field name="partId" type="int_us" indexed="false" stored="true" required="true" /> 
    <field name="partNumber" type="String_en_US" indexed="false" stored="true" required="true" /> 
    <field name="desc" type="text_en_US" indexed="true" stored="true" required="true" /> 
    <field name="usage" type="text_en_US" indexed="true" stored="true" required="true" /> 
    <field name="qty" type="String_en_US" indexed="false" stored="true" required="true" /> 
    <field name="make" type="String_en_US" indexed="true" stored="false" required="true" /> 
    <field name="year" type="int_us" indexed="true" stored="false" required="true" /> 
    </fields> 
</schema> 

我試圖改變PARTID的字段類型,但我得到了同樣的錯誤不有什麼關係。 我正在使用在tomcat 7服務器上運行的solr 3.5。有誰知道我做錯了什麼?如果這些信息不夠,請讓我知道,我會發布更多信息。

回答

0

嘗試改變<type><types>

+0

如果我們這樣做,它會給出錯誤說:schema.xml:field id:missing強制屬性「類型」 – 2016-05-18 08:56:59

+0

我的答案是從2012年開始的,所以你顯然正在使用更新版本的solr https://wiki.apache.org/solr/SchemaXml – 2016-05-24 20:36:59

1

不知道它的計算器格式,但張貼的模式是無效的XML

<schema name="parts" version 1.5>

應該

<schema name="parts" version="1.5">

+0

感謝您的回覆,但在我的schema.xml中正確 – stirling 2012-04-02 17:11:07

+0

我發現問題,這是一個錯字。我有class =「solr.phoneticFilter ...」而不是class =「solr.PhoneticFilter ..」對不起,因爲在我發佈前沒有捕獲到這個。 – stirling 2012-04-02 20:08:49

0

我得到了相同的問題與Solr 4.6當我使用

<field name="_version_" type="long" indexed="true" stored="true" /> 

只有對<types>的根元素更正有助於解決此問題。 這是第一個答案。