Est-il acceptable d'indexer les documents lucene avec deux analyseurs différents? Comme je dois prendre en charge la recherche sensible à la casse et à la casse. Je me demande donc si je peux utiliser deux analyseurs pour le même document.Indexation d'un document lucene avec différents analyseurs
writer.addDocument(doc,new StandardAnalyzer(Version.LUCENE_30)); writer.addDocument(doc,new custom_analyser);
Je prévois d'avoir un analyseur personnalisé qui prend en charge tous filtre l'analyseur norme ne filtre sauf pour les minuscules. Pendant que j'essaie de rechercher des résultats à partir d'indices, je pense que nous pourrions finir par obtenir des doublons ..
Des commentaires/idées?
EDIT: @Simon
Analyzer defaultAnalyzer = new StandardAnalyzer(Version.LUCENE_30);
PerFieldAnalyzerWrapper wrapper = new PerFieldAnalyzerWrapper(defaultAnalyzer);
wrapper.addAnalyzer("CaseSensitiveContents", new WhitespaceAnalyzer());
writer = new IndexWriter(FSDirectory.open(index), wrapper, true,
new IndexWriter.MaxFieldLength(100))
doc.add(new Field("contents", parser.getReader(), TermVector.YES));
doc.add(new Field("CaseSensitiveContents", parser.getReader(), TermVector.YES));
writer.add(doc)
@Simon, je reçois une exception de flux fermé lorsque j'essaie d'ajouter le même contenu à deux polices différentes ... comment résoudre ce problème? – remo
Il semble que vous ajoutez le même jeton deux fois? Je n'ai jamais vu cette erreur en travaillant avec des chaînes pures. Je devrais voir du code pour déboguer ceci, de préférence où vous ajoutez votre Fieldable (habituellement Field). – sisve
J'ai ajouté une partie de mon code ici – remo