2

再構築しようとしていますが、スキーマ(manage.py build_solr_schema)をビルドした後、出力をコピーしてschema.xmlファイルに貼り付けます。サーバーとrebuild_index(manage.pyrebuild_index)を再起動した後、以下のエラーが発生します。私は問題を解決しようとしてきましたが、成功しませんでした!何が足りないの?新しいコードを貼り付ける前に、まずスキーマファイルのXMLコードを削除する必要がありますか?

  HTTP Status 500 - Severe errors in solr configuration. Check your log files for more detailed information on what may be wrong. If you want solr to continue after configuration errors, change: <abortOnConfigurationError>false</abortOnConfigurationError> in solr.xml -------------------------------------------------------------
  org.apache.solr.common.SolrException: No cores were created, please check the logs for  errors at org.apache.solr.core.CoreContainer$Initializer.initialize    (CoreContainer.java:172) at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96) at
  org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277) at   org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4649) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5305) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:650) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1582) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 
  ------------------------------------------------------------- org.apache.solr.common.SolrException: Schema Parsing Failed: Attribute name "omitN" associated with an element type "fieldtype" must be followed by the ' = ' character. at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:688) at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:123) at org.apache.solr.core.CoreContainer.create(CoreContainer.java:481) at org.apache.solr.core.CoreContainer.load(CoreContainer.java:335) at org.apache.solr.core.CoreContainer.load(CoreContainer.java:219) at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:161) at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96) at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4649) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5305) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:650) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1582) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run (Unknown Source) Caused by: org.xml.sax.SAXParseException: Attribute name "omitN" associated with an element type "fieldtype" must be followed by the ' = ' character. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException  (Unknown Source) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError  (Unknown Source)   at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanAttribute(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument  (Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source) at org.apache.solr.core.Config.<init>(Config.java:159) at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:418) ... 24 more       ------------------------------------------------------------- org.xml.sax.SAXParseException: Attribute name "omitN" associated with an element type "fieldtype" must be followed by the ' = ' character. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException (Unknown Source) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError (Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError  (Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanAttribute(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source) at org.apache.solr.core.Config.<init>(Config.java:159) at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:418) at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:123) at org.apache.solr.core.CoreContainer.create(CoreContainer.java:481) at org.apache.solr.core.CoreContainer.load(CoreContainer.java:335) at org.apache.solr.core.CoreContainer.load(CoreContainer.java:219) at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:161) at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96) at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4649) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5305) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:650) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1582) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 

スキーマ出力

        <?xml version="1.0" ?>
        <!--
         Licensed to the Apache Software Foundation (ASF) under one or more
         contributor license agreements.  See the NOTICE file distributed with
         this work for additional information regarding copyright ownership.
         The ASF licenses this file to You under the Apache License, Version 2.0
         (the "License"); you may not use this file except in compliance with
         the License.  You may obtain a copy of the License at

           http://www.apache.org/licenses/LICENSE-2.0

          Unless required by applicable law or agreed to in writing, software
         distributed under the License is distributed on an "AS IS" BASIS,
         WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         See the License for the specific language governing permissions and
         limitations under the License.
         -->

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

            <!-- 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="int" class="solr.TrieIntField" precisionStep="0"     omitNorms="true" sortMissingLast="true" positionIncrementGap="0"/>
          <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" sortMissingLast="true" positionIncrementGap="0"/>
          <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" sortMissingLast="true" positionIncrementGap="0"/>
          <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" sortMissingLast="true" positionIncrementGap="0"/>

          <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
          <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
          <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
         <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>

         <fieldType name="date" class="solr.TrieDateField" omitNorms="true" precisionStep="0" positionIncrementGap="0"/>
        <!-- A Trie based date field for faster date range queries and date facetin. ->
       <fieldType name="tdate" class="solr.TrieDateField" omitNorms="true"  precisionStep="6" positionIncrementGap="0"/>

       <fieldType name="point" class="solr.PointType" dimension="2" subFieldSuffix="_d"/>
       <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
       <fieldtype name="geohash" class="solr.GeoHashField"/>

       <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
       <analyzer type="index">
       <tokenizer class="solr.StandardTokenizerFactory"/>
       <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"  enablePositionIncrements="true" />
       <!-- 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.LowerCaseFilterFactory"/>
       </analyzer>
       <analyzer type="query">
       <tokenizer class="solr.StandardTokenizerFactory"/>
       <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
       <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignore Case="true" expand="true"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
     </fieldType>

     <fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">

      <analyzer type="index">
       <tokenizer class="solr.StandardTokenizerFactory"/>
       <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="stopwords_en.txt"
            enablePositionIncrements="true"
            />
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.EnglishPossessiveFilterFactory"/>
      <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
      <!-- Optionally you may want to use this less aggressive stemmer instead of PorterStemFilterFactory:
      <filter class="solr.EnglishMinimalStemFilterFactory"/> -->
      <filter class="solr.PorterStemFilterFactory"/>
      </analyzer>
      <analyzer type="query">
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
       <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="stopwords_en.txt"
            enablePositionIncrements="true"
            />
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.EnglishPossessiveFilterFactory"/>
        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
        <!-- Optionally you may want to use this less aggressive stemmer instead of PorterStemFilterFactory:
      <filter class="solr.EnglishMinimalStemFilterFactory"/> -->
      <filter class="solr.PorterStemFilterFactory"/>
      </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="int"    indexed="true"  stored="true"/>
      <dynamicField name="*_s"  type="string"  indexed="true"  stored="true"/>
      <dynamicField name="*_l"  type="long"   indexed="true"  stored="true"/>
      <dynamicField name="*_t"  type="text_en"    indexed="true"  stored="true"/>
      <dynamicField name="*_b"  type="boolean" indexed="true"  stored="true"/>
      <dynamicField name="*_f"  type="float"  indexed="true"  stored="true"/>
      <dynamicField name="*_d"  type="double" indexed="true"  stored="true"/>
      <dynamicField name="*_dt" type="date" indexed="true" stored="true"/>
      <dynamicField name="*_p" type="location" indexed="true" stored="true"/>
      <dynamicField name="*_coordinate"  type="tdouble" indexed="true"  stored="false"/>


      <field name="text" type="text_en" indexed="true" stored="true" multiValued="false" />

      <field name="price" type="text_en" indexed="true" stored="true" multiValued="false" />

      <field name="city_stay" type="text_en" indexed="true" stored="true" multiValued="false" />

      <field name="guideline" type="text_en" indexed="true" stored="true" multiValued="false" />

      <field name="state" type="text_en" indexed="true" stored="true"  multiValued="false" />

      <field name="address" type="text_en" indexed="true" stored="true"  multiValued="false" />

      <field name="pub_date" type="date" indexed="true" stored="true" multiValued="false" />

      </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>
4

2 に答える 2

1

DjangoHaystackはSolr3.5以降のみをサポートします

http://django-haystack.readthedocs.org/en/latest/backend_support.html#id1

Solr 1.4を使用している場合、スキーマ形式が1.4から3.5に変更されました

于 2012-06-24T22:25:55.513 に答える
-1

私はSolrを実行していないため、これをテストすることはできませんが、いくつかの問題が発生します(より正確には、XMLをきれいに印刷しようとするとエラーとしてフラグが立てられます:-))

  • 40行目( )は;<!-- A Trie based date field ...で終わります。->する必要があります-->

  • 59行目(<filter class="solr.SynonymFilterFactory" ...)にはignore Case="true";が含まれています。ignoreCase="true"(attr名にスペースを入れないでください)

これらのエラーを修正すると、問題が解決する可能性が高くなります。

于 2012-06-23T23:37:55.107 に答える