close

如果你的搜尋引擎有特定的用途,例如用在圖書館、電子商務網站等,勢必會針對某些欄位做搜尋,例如會對商品的價格做限制,或是限定在某個上架日期。這些欄位都不是以純文字儲存,而是特定的資料型態,以商品價格來說,它是以整數來儲存。那麼,在搜尋引擎索引時,就必須特別處理。

下面將會以商品價格做為示範,首先是資料的索引,前篇文章都是以Field做索引,但針對價格這種數字型別的,要改以NumericField來存放。

2012-02-08_112244

 

在搜尋時,因為已經不是只有單純下Search Query而已,而是會包含其它的條件,所以另外設計一個SearchQuery來包裝整個查詢。

2012-02-08_140604

 

在搜尋時,使用BooleanQuery存放多個查詢條件,因為除了對SaleName也會對Price做查詢,至於Price部份是使用NumericRangeQuery。做多個條件查詢時,需明確指出該條件是AND還是OR,所以會用到BooleanClause.Occur來做指定。

2012-02-08_112313

 

最後就是真正的查詢,其實跟之前介紹的沒有差別,就是將Hits物件裡的結果取出而已。

2012-02-08_112330

arrow
arrow
    全站熱搜

    卑微研究生 發表在 痞客邦 留言(0) 人氣()