Выполните шаги для переиндексации 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.
Другие вопросы по тегам