2009-07-24 8 views
1

Je veux écrire une requête Lucene qui est l'équivalent de SQLLucene syntaxe de requête

suivante
where age = 25 
and name in ("tom", "dick", "harry") 

Le meilleur que je suis venu avec à ce jour est:

(age:25 name:tom) OR 
(age:25 name:dick) OR 
(age:25 name:harry) 

Y at-il un manière plus succincte d'écrire ceci?

Merci, Don

Répondre

9
age:25 AND name:(tom OR dick OR harry) 

alternativement

+age:25 +name:(tom OR dick OR harry) 
4

ce travail? Je comprends que ce n'est peut-être pas ce que vous cherchez. Je ne savais pas si le but de votre question était de prendre en compte la clause age:25 ou si c'était pour éliminer les préfixes name:.

Si vous faites name votre champ par défaut de l » de QueryParser, vous pouvez réduire cela à:

age:25 AND (tom OR dick OR harry) 
1

Il n'y a pas beaucoup plus succinct, mais vous pouvez essayer:

(age:25) AND (name:tom OR name:dick OR name:harry)