2017-07-07 2 views
0

J'évalue quelques bibliothèques différentes pour voir laquelle correspondra le mieux à ce dont j'ai besoin.Indexation partielle d'un fichier XML (Bleve)

En ce moment je regarde Bleve, mais je suis heureux d'utiliser n'importe quelle bibliothèque.

Je cherche à indexer les fichiers complets sauf ceux qui sont en format XML. Pour ceux que je veux seulement que Bleve indexe des étiquettes spécifiques comme la plupart des étiquettes ne valent rien à chercher. J'essaie d'évaluer si c'est possible mais, étant nouveau à Bleve, je ne suis pas sûr quelle partie j'ai besoin de customiser.

La documentation est très bonne, mais je n'arrive pas à trouver cette réponse. Tout ce dont j'ai besoin est une explication avec des mots-clés et des étapes, aucun code n'est requis, j'ai juste besoin d'un coup de pouce car j'ai passé des heures à faire tourner mes recherches google et je ne reçois nulle part.

Répondre

1

Il y a probablement plusieurs façons d'aborder cela. En voici un. Bleve indexe les documents qui sont des collections de paires de métadonnées clé/valeur.

Dans votre cas, un document peut être représenté par 2 paires clé/valeur: le nom du fichier .xml (pour identifier le document) et le contenu du fichier.

type Doc struct { 
    Name string 
    Body string 
} 

Le problème est que le corps est XML et que Bleve ne prend pas en charge le XML out-of-the-box.

Une façon de résoudre ce problème serait de prétraiter le fichier XML en supprimant les balises et le contenu indésirables. Vous pouvez le faire en utilisant encoding/xml bibliothèque standard.

Pour un exemple d'une tâche similaire, vous pouvez voir le code de https://github.com/blevesearch/fosdem-search/

Dans là, ils fichier d'index au format personnalisé (https://github.com/blevesearch/fosdem-search/blob/master/fosdem.ical) par l'analyse dans un format qu'ils peuvent soumettre à Bleve pour l'indexation (https://github.com/blevesearch/fosdem-search/blob/master/ical.go).