2010-04-30 3 views
3

J'effectue un test simple - en essayant d'indexer quelque chose, puis de le rechercher. J'indexe un document simple, mais quand j'y recherche une chaîne, je récupère ce qui semble être un document vide (il n'a pas de champs). Lucene semble faire quelque chose, parce que si je cherche un mot qui n'est pas dans le document, il renvoie 0 résultat.Pourquoi les résultats de mon document Lucene sont-ils vides?

Une raison pour laquelle Lucene retournerait un document de façon fiable lorsqu'il en trouverait un qui correspond à la requête donnée, et pourtant ce document n'a rien dedans?

Plus de détails:

  • Je suis en fait en cours d'exécution Lucandra (Lucene + Cassandra). Cela peut certainement être un détail pertinent, mais pas certain.

  • Les champs sont mis à Field.Store/YES et Field.Index/ANALYSER

  • Fait intéressant, je suis en mesure d'obtenir que cela fonctionne très bien sur ma machine locale, mais quand nous l'avons mis sur notre serveur principal (qui est une configuration de cassandra multi-noeud), j'obtiens le comportement décrit ci-dessus. Donc, cela ressemble probablement à le détail pertinent, mais malheureusement, je ne vois pas de message d'erreur pour me dire ce qui le cause spécifiquement.
+0

Pouvez-vous fournir un exemple des chaînes que vous stockez et comment vous les interrogez? Vous utilisez probablement QueryParser et ne construisez pas les requêtes manuellement? – ponzao

Répondre

0

Il est difficile de dire quel est le problème puisque vous ne fournissez qu'une description très abstraite. Cependant, cela semble un peu comme si vous ne stockez pas la valeur du champ dans l'index. Il existe différents modes pour indexer un champ. Une option détermine si la valeur initiale est stockée dans l'index pour le récupérer plus tard:

http://lucene.apache.org/java/3_0_0/api/core/org/apache/lucene/document/Field.Store.html

Voir aussi la description de la classe englobante Field

+0

Merci, je réalise que je n'ai donné qu'une description abstraite. Et c'est parce que ceci est implémenté dans un wrapper de clojure autour de Lucandra qui est une manière d'utiliser Lucene avec Clojure. En ce qui concerne le magasin de champ, malheureusement j'utilise Field.Store/YES donc ce n'est pas le problème. Je vais mettre à jour la question originale maintenant, cependant, avec ceci et d'autres informations. Merci! – vegashacker

1

Pas sûr si cela fonctionnera avec Lucandra, mais vous avez essayé d'ouvrir l'index en utilisant Luke? Affichage du contenu de l'index avec Luke pourrait aider

Questions connexes