Indexar o wikipedia com solr
instalei o solr 4.6.0 e sigo o tutorial disponível na página inicial do Solr. Estava tudo bem, até ter de fazer um trabalho a sério que estou prestes a fazer. Eu tenho que obter um acesso rápido ao conteúdo da wikipedia e eu fui aconselhado a usar Solr. Bem, eu estava tentando seguir o exemplo no link http://wiki.apache.org/solr/DataImportHandler#Example:_Indexing_wikipedia mas não consegui o exemplo. Eu sou novato, e não sei o que significa data_config.xml!
<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>
não foi possível encontrar na pasta pessoal do Solr. Além disso, eu tentei encontrar algumas perguntas relacionadas com o meu, Como indexar arquivos da Wikipédia em .o formato xml no solr e A indexar o dump da Wikipédia com o solr , mas não resolveram a minha dúvida.
acho que preciso de algo mais básico, guiando-me passo a passo, porque o tutorial é confuso quando lida com indexação da Wikipédia.
Qualquer conselho para dar algumas indicações ao folow seria bom.2 answers
-
Para o data_config.xml
Cada instância Solr é configurada usando três ficheiros principais: solr.xml, solrconfig.xml, esquema.xml, and the data_config.ficheiro xml define a fonte de dados quando usa o componente DIH, este URL seria útil para si: DIH .
-
Acerca da pasta pessoal do Solr
Devias começar por aqui. https://cwiki.apache.org/confluence/display/solr/Running + Solr
...
<!-- ****** 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" />
Aqui está a minha configuração de dados.xml: (importante: deve estar na mesma pasta do 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>
Atenção: a última linha é muito importante!
O meu esquema.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"/>
...
E está feito. É tudo, pessoal!