2010-02-11 94 views
0

我試圖搜索範圍內的結果,例如A到C.然而,結果是包含範圍內的字母的結果,但我只希望結果以字母在範圍內開始。Lucene搜索字段必須以某些字母開頭

+0

RangeQuery的查詢語法是[A TO C]。在這種特殊情況下,您應該收到以A,B開頭的所有結果以及僅包含一個字母C的條款。 或者您可以嘗試A *或B *或C *查詢 – Yaroslav 2010-02-11 21:36:49

+0

@Aemem:請不要更改整個問題,使現有答案無效。相反,創建一個新問題。 – 2010-02-12 16:20:48

+0

是的,我應該添加一條評論來澄清,我編輯了這個問題來澄清。道歉 – Akeem 2010-02-13 14:30:19

回答

0

我結束了使用由QParser插件提供的frange for solr 1.4

{!frange l=A u=C}fieldname 

我從here得到了信息

1

最簡單的方法 - 在索引時間內,創建另一個只包含第一個字母的字段。因此,如果該領域目前包含:

Alpha 
Beta 
Charlie 

隨後指數在一個單獨的領域(非分析):

A 
B 
C 

然後使用範圍查詢像往常一樣

myFieldFirstLetter:[A TO C]