Haystack with Solr- Schema Parsing Failed

110 views
Skip to first unread message

coded kid

unread,
Jun 23, 2012, 6:21:45 PM6/23/12
to Django users
I'm trying to rebuild_index, but after building the schema ( manage.py
build_solr_schema ) I copy and paste the output in the schema.xml
file. After restarting the server and rebuild_index ( manage.py
rebuild_index ) I'm getting the below error. I've been trying to get
the problem, yet no success! What I'm I missing? Should I first delete
the XML codes in the schema file before pasting the new one?


Error:

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.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)
-------------------------------------------------------------
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)


Schema output:

<?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" omitN
orms="true"/>
<fieldType name="boolean" class="solr.BoolField"
sortMissingLast="true" omit
Norms="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 faceting
. -->
<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" ignoreCase="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>
Reply all
Reply to author
Forward
0 new messages