Besoin d'aide pour l'indexation des fichiers XML en Solr à l'aide de DataImportHandler
Je ne sais pas java, je ne sais pas XML, et je ne sais pas Lucene. Maintenant que cela est hors de la voie. J'ai travaillé pour créer un petit projet à l'aide d'apache solr/lucene. Mon problème est que je n'arrive pas à indexer les fichiers xml. Je crois que je comprends comment son supposé fonctionner, mais je peux me tromper. Je ne suis pas sûr de ce que l'information est nécessaire pour vous de m'aider donc je vais juste poster le code.
<dataConfig>
<dataSource type="FileDataSource" encoding="UTF-8" />
<document>
<!-- This first entity block will read all xml files in baseDir and feed it into the second entity block for handling. -->
<entity name="AMMFdir" rootEntity="false" dataSource="null"
processor="FileListEntityProcessor"
fileName="^*\.xml$" recursive="true"
baseDir="C:\Documents and Settings\saperez\Desktop\Tomcat\apache-tomcat-7.0.23\webapps\solr\data\AMMF_New"
>
<entity
processor="XPathEntityProcessor"
name="AMMF"
pk="AcquirerBID"
datasource="AMMFdir"
url="${AMMFdir.fileAbsolutePath}"
forEach="/AMMF/Merchants/Merchant/"
transformer="DateFormatTransformer, RegexTransformer"
>
<field column="AcquirerBID" xpath="/AMMF/Merchants/Merchant/AcquirerBID" />
<field column="AcquirerName" xpath="/AMMF/Merchants/Merchant/AcquirerName" />
<field column="AcquirerMerchantID" xpath="/AMMF/Merchants/Merchant/AcquirerMerchantID" />
</entity>
</entity>
</document>
Exemple de fichier xml
<?xml version="1.0" encoding="utf-8"?>
<AMMF xmlns="http://tempuri.org/XMLSchema.xsd" Version="11.2" CreateDate="2011-11-07T17:05:14" ProcessorBINCIB="422443" ProcessorName="WorldPay" FileSequence="18">
<Merchants Count="153">
<Merchant ChangeIndicator="A" LocationCountry="840">
<AcquirerBID>10029881</AcquirerBID>
<AcquirerName>WorldPay</AcquirerName>
<AcquirerMerchantID>*</AcquirerMerchantID>
<Merchant ChangeIndicator="A" LocationCountry="840">
<AcquirerBID>10029882</AcquirerBID>
<AcquirerName>WorldPay2</AcquirerName>
<AcquirerMerchantID>Hello World!</AcquirerMerchantID>
</Merchant>
</Merchants>
J'ai ce schéma.
<field name="AcquirerBID" type="string" indexed="true" stored="true" required="true" />
<field name="AcquirerName" type="string" indexed="true" stored="true" />
<field name="AcquirerMerchantID" type="string" indexed="true" stored="true"/>
J'ai cette config.
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler" default="true" > <lst name="defaults"> <str name="config">AMMFconfig.xml</str> </lst> </requestHandler>
OriginalL'auteur Samuel Pérez | 2012-01-13
Vous devez vous connecter pour publier un commentaire.
L'exemple de XML n'est pas bien formé. Ce qui pourrait expliquer les erreurs d'indexation des fichiers:
Corrigé XML
Voici ce que je pense de votre échantillon de données devrait ressembler (N'a pas à vérifier le fichier XSD)
Solution Alternative
Je sais que vous avez dit que vous n'êtes pas un programmeur, mais cette tâche est beaucoup plus simple, si vous utilisez le solrj interface.
Ce qui suit est une groovy exemple qui indexe votre exemple XML
Groovy Java est un langage de script qui ne nécessite pas de compilation. Il serait tout aussi facile à entretenir qu'un DIH fichier de config.
OriginalL'auteur Mark O'Connor
Souvent la meilleure chose à faire est de ne PAS utiliser le DIH. Comment serait-il difficile de simplement afficher ces données à l'aide de l'API et d'un script personnalisé dans une langue que vous NE connaissez?
L'avantage de cette approche est double:
L'inconvénient est que vous êtes ré-inventer la roue un peu, mais le DIH est tout à fait une chose à comprendre.
Je dirais que le codage est une exigence pour Solr. Je ne peux pas imaginer que vous serez capable de faire beaucoup sans au moins une langue dans votre boîte à outils.
OriginalL'auteur mlissner
De comprendre comment DIH importation XML fonctionne, je vous suggère de lire ce chapitre en DIH wiki: http://wiki.apache.org/solr/DataImportHandler#HttpDataSource_Example.
Ouvrir le Slashdot lien http://rss.slashdot.org/Slashdot/slashdot dans votre navigateur, puis cliquez droit sur la page et sélectionnez "Afficher la source". Il y a le fichier XML utilisé dans cet exemple.
Comparer avec XPathEntityProcessor configuration en DIH exemple, et vous verrez combien il est facile d'importer n'importe quel fichier XML dans Solr.
Si vous avez besoin de plus d'aide il suffit de demander...
OriginalL'auteur Marko Bonaci