2009-07-24 102 views
1

我想寫一個Lucene查詢這是下面的SQLLucene的查詢語法

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

最好的我想出迄今相當於是:

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

是否有更簡潔的方式來寫這個?

謝謝, 唐

回答

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

或者

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

工作的呢?

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

我知道這可能不是你要找的。我不知道你的問題的目的是爲了排除age:25條款,或者如果是爲了消除name:前綴。

如果您nameQueryParser的默認字段,可以降低減少這:

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

這不是更簡潔,但你可以嘗試:

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