Выполните шаги для переиндексации solr при изменении схемы
Я новичок в Solr и использую Solr-4.6.0. После настройки я могу добавить документы в индекс. Но теперь я хочу добавить стволовый фильтр для поля поиска и обновленный schema.xml. Чтобы он заработал, мне нужно сначала переиндексировать solr на моей локальной машине, прежде чем вносить изменения в prod. Google-d за полный набор шагов или процедур, которым нужно следовать, но не нашел удовлетворительного метода. Кто-нибудь может предоставить шаги?
2 ответа
Вы просто запускаете ту же самую команду индекса снова. Все с таким же уникальным идентификатором (как определено в schema.xml) будет переопределено при фиксации. Если вы хотите начать с чистого листа, вы можете либо остановить экземпляр и удалить весь каталог индекса, либо выполнить команду delete all.
Ok, now I've moved 2 steps forward. I've created data-config.xml and put SolrEntityProcessor as datasource as I don't want to delete and re build the index. Solr reload is working fine, but on runing fulldata import, it throws error. Here are the files:
data-config.xml:
<dataConfig>
<document name="SolrIndex">
<entity name="SolrIndex_Data" processor="SolrEntityProcessor" url="http://quovantis-hp-15-notebook-pc:8081/solr-4.6.0/#/collection1" query="*:*"/>
</document>
</dataConfig>
solr-config.xml:
<config>
<lib dir="../../dist/" regex="apache-solr-dataimporthandler-\d.*\.jar" />
<lib dir="../../contrib/dataimporthandler/lib/" regex=".*\.jar" />
</config>
schema.xml:
<schema name="example" version="1.5">
<fields>
<field name="entityData" type="text_stem" stored="true" indexed="true" multiValued="false" />
</fields>
<types>
<fieldType name="text_stem" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PorterStemFilterFactory" />
</analyzer>
0
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>
</types>
Error:
{
"responseHeader": {
"status": 0,
"QTime": 0
},
"initArgs": [
"defaults",
[
"config",
"data-config.xml"
]
],
"command": "status",
"status": "idle",
"importResponse": "",
"statusMessages": {
"Time Elapsed": "0:0:22.403",
"Total Requests made to DataSource": "0",
"Total Rows Fetched": "0",
"Total Documents Processed": "0",
"Total Documents Skipped": "0",
"Full Dump Started": "2014-09-10 14:55:03",
"": "Indexing failed. Rolled back all changes.",
"Rolledback": "2014-09-10 14:55:04"
},
"WARNING": "This response format is experimental. It is likely to change in the future."
}
I've followed some post to run this. Not sure where the issue is.