2013-12-09 2 views
1

Я установил solr 4.6.0 и следую учебнику, доступному на домашней странице Solr. Все было в порядке, пока мне не нужно делать настоящую работу, которую я собираюсь сделать. Я должен получить быстрый доступ к контенту wikipedia, и мне посоветовали использовать Solr. Ну, я пытался следовать примеру в ссылке http://wiki.apache.org/solr/DataImportHandler#Example:_Indexing_wikipedia, но я не мог получить пример. Я новичок, и я не знаю, что означает data_config.xml!Индексирование wikipedia с solr

<dataConfig> 
     <dataSource type="FileDataSource" encoding="UTF-8" /> 
     <document> 
     <entity name="page" 
       processor="XPathEntityProcessor" 
       stream="true" 
       forEach="/mediawiki/page/" 
       url="/data/enwiki-20130102-pages-articles.xml" 
       transformer="RegexTransformer,DateFormatTransformer" 
       > 
      <field column="id"  xpath="/mediawiki/page/id" /> 
      <field column="title"  xpath="/mediawiki/page/title" /> 
      <field column="revision" xpath="/mediawiki/page/revision/id" /> 
      <field column="user"  xpath="/mediawiki/page/revision/contributor/username" /> 
      <field column="userId" xpath="/mediawiki/page/revision/contributor/id" /> 
      <field column="text"  xpath="/mediawiki/page/revision/text" /> 
      <field column="timestamp" xpath="/mediawiki/page/revision/timestamp" dateTimeFormat="yyyy-MM-dd'T'hh:mm:ss'Z'" /> 
      <field column="$skipDoc" regex="^#REDIRECT .*" replaceWith="true" sourceColName="text"/> 
     </entity> 
     </document> 
</dataConfig> 

Не удалось найти в домашнем каталоге Solr. Кроме того, я попытался найти некоторые вопросы, связанные с моими, How to index wikipedia files in .xml format into solr и Indexing wikipedia dump with solr, но они не решили моих сомнений.

Мне кажется, что мне нужно что-то более основное, направляя меня шаг за шагом, потому что учебник запутан, когда дело касается индексации википедии.

Любые советы, чтобы дать некоторые указания, были бы приятными.

ответ

1

Ну, я прочитал много вещей в Интернете и пытался собираемой как много информации, как это возможно. Это, как я смог найти решение:

вот мой solrconfig.xml:

... 
    <!-- ****** Data import handler --> 
    <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> 
    <lst name="defaults"> 
     <str name="config">data-config.xml</str> 
    </lst> 
    </requestHandler> 
... 
    <lib dir="../../../dist/" regex="solr-dataimporthandler-.*\.jar" /> 

Вот мои данные-config.xml: (важно: он должен находиться в той же папке solrconfig.xml)

<dataConfig> 
     <dataSource type="FileDataSource" encoding="UTF-8" /> 
     <document> 
     <entity name="page" 
       processor="XPathEntityProcessor" 
       stream="true" 
       forEach="/mediawiki/page/" 
       url="/Applications/solr-4.6.0/example/exampledocs/simplewikiSubSet.xml" 
       transformer="RegexTransformer,DateFormatTransformer" 
       > 
      <field column="id"  xpath="/mediawiki/page/id" /> 
      <field column="title"  xpath="/mediawiki/page/title" /> 
      <field column="revision" xpath="/mediawiki/page/revision/id" /> 
      <field column="user"  xpath="/mediawiki/page/revision/contributor/username" /> 
      <field column="userId" xpath="/mediawiki/page/revision/contributor/id" /> 
      <field column="text"  xpath="/mediawiki/page/revision/text" /> 
      <field column="timestamp" xpath="/mediawiki/page/revision/timestamp" dateTimeFormat="yyyy-MM-dd'T'hh:mm:ss'Z'" /> 
      <field column="$skipDoc" regex="^#REDIRECT .*" replaceWith="true" sourceColName="text"/> 
     </entity> 
     </document> 
</dataConfig> 

Внимание: последняя строка очень важна!

Мой schema.xml:

... 
    <field name="id"  type="string" indexed="true" stored="true" required="true"/> 
    <field name="title"  type="string" indexed="true" stored="false"/> 
    <field name="revision" type="int" indexed="true" stored="true"/> 
    <field name="user"  type="string" indexed="true" stored="true"/> 
    <field name="userId" type="int"  indexed="true" stored="true"/> 
    <field name="text"  type="text_en" indexed="true" stored="false"/> 
    <field name="timestamp" type="date" indexed="true" stored="true"/> 
    <field name="titleText" type="text_en" indexed="true" stored="true"/> 
... 
<uniqueKey>id</uniqueKey> 
... 
    <copyField source="title" dest="titleText"/> 
... 

И это делается. Это все люди!

+0

Привет @marcelo, спасибо за этот замечательный ответ. Однако я сделал то же самое, но все еще не смог увидеть индексированные документы. Не могли бы вы взглянуть на мой вопрос: http://stackoverflow.com/questions/31566401/how-to-configure-solr-dataimport-handler-to-parse-wikipedia-xml-document – Tanny

+0

@marcelo - Я тоже сталкиваясь с той же проблемой. он не индексирует все поля. пожалуйста, помогите мне за то же самое - http://stackoverflow.com/questions/32628350/solr-dataimporthandler-is-not-indexing-all-data-defined – virus

2
  • Для data_config.xml

    Каждый экземпляр Solr сконфигурирован с использованием трех основных файлов: solr.xml, solrconfig.xml, schema.xml и файл data_config.xml определить источник данных, когда вы используйте компонент DIH, этот URL-адрес будет полезен для вас: DIH.

  • О домашнем каталоге Solr

    Вы должны начать отсюда: https://cwiki.apache.org/confluence/display/solr/Running+Solr

Смежные вопросы