2009-07-10 6 views
2

Je souhaite effectuer une requête AND, par exemple 'foo AND bar', dans Lucene.NET. J'ai un champ WholeIndex qui a indexé le document entier, et je veux que Lucene fasse une recherche dans tout le document. Jusqu'à ici c'est assez facile, mais il y a une contrainte.Recherche de plusieurs termes dans un champ

Je veux que les termes 'foo' et 'bar' soient dans le même champ.

Existe-t-il un moyen facile de faire cela sans interroger l'index pour la liste complète des champs et la recherche dans chaque champ? Ce que je veux savoir, c'est s'il existe un moyen de dire à Lucene d'effectuer une recherche dans tous les champs, sans avoir à connaître tous les champs de mon index. Un moyen automatisé de recherche les éléments suivants:

"field1: (+ foo + bar) field2: (+ foo + bar) ... champN: (+ foo + bar)"

Répondre

2

Vous pouvez utiliser GetFieldNames à obtenir tous les noms de champ, puis passez par programme sur la liste et générer une requête comme celle que vous avez écrite, en utilisant BooleanQuery.

Questions connexes