Solr在替换架构后停止工作

Solr在替换架构后停止工作,solr,Solr,在solr中替换schema之后,我得到以下错误。注意,在替换manage.py填充的模式之前,我可以访问Solr/admin和Solr <abortOnConfigurationError> false </abortOnConfigurationError> in solr.xml ------------------------------------------------------------- org.apache.solr.common

在solr中替换schema之后,我得到以下错误。注意,在替换manage.py填充的模式之前,我可以访问Solr/admin和Solr

    <abortOnConfigurationError> false </abortOnConfigurationError>

in solr.xml

-------------------------------------------------------------
    org.apache.solr.common.SolrException: Unknown fieldtype '' specified on field 
    at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:511)
    at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:123)
    at org.apache.solr.core.CoreContainer.create(CoreContainer.java:478)
    at org.apache.solr.core.CoreContainer.load(CoreContainer.java:332)
    at org.apache.solr.core.CoreContainer.load(CoreContainer.java:216)
    at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:161)
    at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96)
    at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
    at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.Server.doStart(Server.java:224)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.mortbay.start.Main.invokeMain(Main.java:194)
    at org.mortbay.start.Main.start(Main.java:534)
    at org.mortbay.start.Main.start(Main.java:441)
    at org.mortbay.start.Main.main(Main.java:119)
false
在solr.xml中
-------------------------------------------------------------
org.apache.solr.common.SolrException:在字段上指定了未知的字段类型“”
位于org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:511)
位于org.apache.solr.schema.IndexSchema.(IndexSchema.java:123)
在org.apache.solr.core.CoreContainer.create上(CoreContainer.java:478)
位于org.apache.solr.core.CoreContainer.load(CoreContainer.java:332)
位于org.apache.solr.core.CoreContainer.load(CoreContainer.java:216)
位于org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:161)
位于org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96)
位于org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
位于org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
位于org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
位于org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
位于org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
位于org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
位于org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
位于org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
位于org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
位于org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
位于org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
位于org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
位于org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
位于org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
位于org.mortbay.jetty.Server.doStart(Server.java:224)
位于org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
位于org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:601)
位于org.mortbay.start.Main.invokeMain(Main.java:194)
位于org.mortbay.start.Main.start(Main.java:534)
位于org.mortbay.start.Main.start(Main.java:441)
位于org.mortbay.start.Main.Main(Main.java:119)
我的schema.xml如下所示

<?xml version="1.0" encoding="UTF-8" ?>

<schema name="default" version="1.1">
  <types>
    <fieldtype name="string"  class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
    <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/>

    <!-- Numeric field types that manipulate the value into
         a string value that isn't human-readable in its internal form,
         but with a lexicographic ordering the same as the numeric ordering,
         so that range queries work correctly. -->
    <fieldType name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/>
    <fieldType name="slong" class="solr.SortableLongField" sortMissingLast="true" omitNorms="true"/>
    <fieldType name="sfloat" class="solr.SortableFloatField" sortMissingLast="true" omitNorms="true"/>
    <fieldType name="sdouble" class="solr.SortableDoubleField" sortMissingLast="true" omitNorms="true"/>

    <fieldType name="date" class="solr.DateField" sortMissingLast="true" omitNorms="true"/>

    <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <!-- in this example, we will only use synonyms at query time
        <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
        -->
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
      </analyzer>
    </fieldType>

    <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      </analyzer>
    </fieldType>

    <fieldType name="ngram" class="solr.TextField" >
      <analyzer type="index">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.NGramFilterFactory" minGramSize="3" maxGramSize="15" />
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>

    <fieldType name="edge_ngram" class="solr.TextField" positionIncrementGap="1">
      <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory" />
        <filter class="solr.LowerCaseFilterFactory" />
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
        <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front" />
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory" />
        <filter class="solr.LowerCaseFilterFactory" />
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
      </analyzer>
    </fieldType>
  </types>

  <fields>   
    <!-- general -->
    <field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
    <field name="django_ct" type="string" indexed="true" stored="true" multiValued="false" />
    <field name="django_id" type="string" indexed="true" stored="true" multiValued="false" />

    <dynamicField name="*_i"  type="sint"    indexed="true"  stored="true"/>
    <dynamicField name="*_s"  type="string"  indexed="true"  stored="true"/>
    <dynamicField name="*_l"  type="slong"   indexed="true"  stored="true"/>
    <dynamicField name="*_t"  type="text"    indexed="true"  stored="true"/>
    <dynamicField name="*_b"  type="boolean" indexed="true"  stored="true"/>
    <dynamicField name="*_f"  type="sfloat"  indexed="true"  stored="true"/>
    <dynamicField name="*_d"  type="sdouble" indexed="true"  stored="true"/>
    <dynamicField name="*_dt" type="date"    indexed="true"  stored="true"/>


    <field name="" type="" indexed="True" stored="True" multiValued="" />

    <field name="" type="" indexed="True" stored="True" multiValued="" />

    <field name="" type="0" indexed="True" stored="True" multiValued="" />

    <field name="" type="" indexed="True" stored="True" multiValued="" />

    <field name="" type="" indexed="True" stored="True" multiValued="" />

    <field name="" type="" indexed="True" stored="True" multiValued="" />

    <field name="" type="" indexed="True" stored="True" multiValued="" />

    <field name="" type="" indexed="True" stored="True" multiValued="" />

  </fields>

  <!-- field to use to determine and enforce document uniqueness. -->
       <uniqueKey>id</uniqueKey>

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

  <!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
       <solrQueryParser defaultOperator="AND" />
</schema>

身份证件
正文

在模式中,您有一些空字段声明:

<field name="" type="" indexed="True" stored="True" multiValued="" />

<field name="" type="" indexed="True" stored="True" multiValued="" />

<field name="" type="0" indexed="True" stored="True" multiValued="" />

<field name="" type="" indexed="True" stored="True" multiValued="" />

<field name="" type="" indexed="True" stored="True" multiValued="" />

<field name="" type="" indexed="True" stored="True" multiValued="" />

<field name="" type="" indexed="True" stored="True" multiValued="" />

<field name="" type="" indexed="True" stored="True" multiValued="" />

您必须为每个字段标记指定名称和类型,并且多值参数也不能设置为空值(您可以ommit它,或者指定true或false)


有关更多信息,请参见

感谢您提供的文档,因为django没有正确构建模式,所以我不得不手动重新构建模式。最好手动进行,这样您就可以确保一切正常:)