close
如果你的搜尋引擎有特定的用途,例如用在圖書館、電子商務網站等,勢必會針對某些欄位做搜尋,例如會對商品的價格做限制,或是限定在某個上架日期。這些欄位都不是以純文字儲存,而是特定的資料型態,以商品價格來說,它是以整數來儲存。那麼,在搜尋引擎索引時,就必須特別處理。
下面將會以商品價格做為示範,首先是資料的索引,前篇文章都是以Field做索引,但針對價格這種數字型別的,要改以NumericField來存放。
在搜尋時,因為已經不是只有單純下Search Query而已,而是會包含其它的條件,所以另外設計一個SearchQuery來包裝整個查詢。
在搜尋時,使用BooleanQuery存放多個查詢條件,因為除了對SaleName也會對Price做查詢,至於Price部份是使用NumericRangeQuery。做多個條件查詢時,需明確指出該條件是AND還是OR,所以會用到BooleanClause.Occur來做指定。
最後就是真正的查詢,其實跟之前介紹的沒有差別,就是將Hits物件裡的結果取出而已。
全站熱搜
留言列表