pas de requête dans lucene
j'ai besoin de ne pas les requêtes sur mon index lucene. Lucene permet actuellement pas seulement quand nous avons deux ou plusieurs termes dans la requête:
Si je peux faire quelque chose comme:
country:canada not sweden
mais je ne peux pas exécuter une requête comme:
country:not sweden
Pourriez-vous s'il vous plaît laissez-moi savoir si il ya une solution efficace à ce problème
Grâce
OriginalL'auteur Ted Rogati | 2010-08-30
Vous devez vous connecter pour publier un commentaire.
Un très retard de réponse, mais il pourrait être utile pour quelqu'un d'autre plus tard:
SI je ne me trompe pas, il doit faire un "ET" logique avec tous les documents et les documents avec un pays qui est différent de "suède".
OriginalL'auteur Jan Goyvaerts
Veuillez cocher la réponse pour les mêmes question. La solution est d'utiliser MatchAllDocsQuery.
OriginalL'auteur Shashikant Kore
La réponse courte est que ce n'est pas possible en utilisant le standard de Lucene.
Lucene ne permet pas
NOT
requêtes comme un seul terme pour la même raison, il ne permet pas de préfixe de requêtes à effectuer, le moteur aurait à examiner chaque document afin de vérifier si le document est/n'est pas un succès. Il a à examiner chaque document, car il ne peut pas utiliser le terme de recherche que la clé à rechercher des documents dans l'index inversé (utilisé pour stocker les documents indexés).De prendre votre cas comme un exemple:
Si vous avez vraiment besoin de cette fonctionnalité, vous pouvez maintenir votre propre liste d'éléments lors de l'indexation, de sorte qu'un
not sweden
de recherche devient unsweden
recherche à l'aide de Lucene, suivie par une inversion des résultats à l'aide de votre ensemble d'éléments.OriginalL'auteur adrianbanks
OK, je vois ce que vous essayez de faire.
Vous pouvez l'utiliser comme un affinement de la requête car il n'y a pas unaire opérateurs Booléens dans Lucene. Malgré les réponses ci-dessus, je crois que c'est mieux et plus en avant approche (note l'espace avant le générique):
OriginalL'auteur Trinker