2015-09-17 4 views
0

Я использую solr5.3.Solr DataImportHandler не индексирует все данные, определенные

Я пытаюсь загрузить страницу статьи Википедии dump в solr, используя «DataImportHandler», но при получении запросов я получаю только файлы идентификаторов и названий.

Ниже мои данные-config.xml

<dataConfig> 
     <dataSource type="FileDataSource" encoding="UTF-8" /> 
     <document> 
     <entity name="page" 
       processor="XPathEntityProcessor" 
       stream="true" 
       forEach="/mediawiki/page/" 
       url="/mnt/TEST/enwiki-20150602-pages-articles1.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" multiValued="false" /> 
    <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"/> 

Я скопировал schema.xml из "пример/пример-DIH/Solr/Solr/CONF/schema.xml" и удалить все записи поля с несколькими исключениями, как указано в комментариях.

После импорта данных я просто пытаюсь получить все поля, но получаю только «ИД» и «Название».

Также я попытался запустить documentImport, используя режим отладки, чтобы получить некоторую информацию об индексировании, но когда я выбираю режим отладки, он импортирует только 2 документа. Я не уверен, почему? По этой причине я не могу отлаживать процесс индексирования.

Прошу вас, пожалуйста, проинструктировать меня.

EDIT - теперь я уверен, что другие поля не индексируются, потому что когда я указываю df = пользователь или текст, я получаю ниже сообщения.

"MSG": "не определено пользователем поля",

Я запрашивая, как показано ниже: http://localhost:8983/solr/wiki/select?q=% 3A & фл = ID% 2Ctitle% 2Ctext% 2Crevision & мас = JSON & indent = true & debugQuery = true

+0

Полностью ли эти два документа, индексированные в режиме отладки? – MatsLindh

+0

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

+0

Вы перезагрузили ядро ​​или перезапустили Solr после изменения схемы? – MatsLindh

ответ

0

Предоставленная настройка будет работать только с классической схемой. Но при solrconfig по умолчанию была разрешена управляемая схема. Из-за чего я не получал текст. Для управляемой схемы мне не нужно определять «schema.xml», и я должен определить поля в data-config.xml, как показано ниже.

<field column="id"  xpath="/mediawiki/page/id" /> 
      <field column="title_s"  xpath="/mediawiki/page/title" /> 
      <field column="revision" xpath="/mediawiki/page/revision/id" /> 
      <field column="user_s"  xpath="/mediawiki/page/revision/contributor/username" /> 
      <field column="userId" xpath="/mediawiki/page/revision/contributor/id" /> 
      <field column="text_s"  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"/> 
0

Мой дорогой друг, вы просто ошибочно набрали одно из полей. Попробуйте эту ссылку, и вы хотите смеяться и плакать одновременно.

http://localhost:8983/solr/wiki/select?q=*%3A*&fl=id+titleText+user+revision&wt=json&indent=true

Названное вы упомянули в схеме является «TitleText» и ваш предел упоминается «название» и «текст» отдельно. Так что бог скорости, и вы можете оставаться на связи со мной через тусовки: [email protected]

+0

его не работает. – virus

+0

Как я проверяю, я обнаружил, что вместо названия и идентификатора ничего не индексируется. Я также отправил запрос на видеовстречу. Пожалуйста, примите это. – virus