Je voudrais utiliser Lucene pour indexer une table dans une base de données existante. Je pensais que le processus est comme:Lucene Indexing
- Créer un « champ » pour chaque colonne dans la table
- magasin tous les champs
- « ANALYSER » tous les champs à l'exception du terrain avec la clé primaire
- Stockez chaque ligne de la table en tant que document Lucene.
Alors que la plupart des colonnes de ce tableau sont petites, l'une est énorme. Cette colonne contient également la plus grande partie des données sur lesquelles les recherches seront effectuées.
Je sais que Lucene offre une option pour ne pas stocker un champ. Je pensais à deux solutions:
- magasin le champ quelle que soit la taille et si un coup est trouvé pour une recherche, le champ approprié aille chercher du document
- Ne pas stocker le terrain et si un coup est trouvé pour une recherche, interroger la base de données pour obtenir les informations pertinentes sur
Je sais qu'il ne peut pas être une taille unique réponse ...
+1 pour la réponse de Pascal. Vous pouvez également marquer le grand champ et * ne pas le stocker *. De cette façon, vous pouvez interroger (rechercher) sur le champ, obtenir l'identificateur de document/enregistrement approprié et récupérer l'enregistrement à partir de db. – Mikos
Merci pour vos réponses. Si je décide de ne pas stocker de champ, je ne serais pas non plus en mesure d'utiliser la surbrillance (module contrib Lucene) pour mettre en évidence les résultats de recherche? –
Cela pourrait être fait sans stocker le texte, mais ce n'est pas facile. Voir http: //www.lucidimagination.com/search/document/5ea8054ed8348e6f/highlight_arbitrary_text # 60f592f5ff0de0c5 –