2008-12-05 89 views

回答

0

你是否想有一個真正的類似SQL的「GROUP BY」的行爲,或者僅僅是一個「ORDER BY」目前尚不清楚行爲。在Lucene中沒有什麼像聚合函數,所以「GROUP BY」必須在你的應用程序中實現,在Lucene之上。

但是,按字段排序相當容易。確保所需字段已編入索引,並創建要作爲搜索條件一部分傳遞的對象;大多數搜索方法都有一個接受Sort實例的過載。

如果您要實現自己的「GROUP BY」邏輯,結果爲「ORDERED BY」,則正確的字段是有用的第一步。

1

的Lucene有一些suplimentary庫,一個是你需要的東西:Grouping

您無法通過函數查詢值,也不是由任意查詢組(如Solr的一樣),但您可以通過單值字段。類似

東西(面搜索)將在Lucene的4.0

+0

鏈接已損壞。也許新的位置是這樣的:http://lucene.apache.org/core/old_versioned_docs/versions/3_2_0/api/contrib-grouping/org/apache/lucene/search/grouping/package-summary.html – 2013-03-08 18:50:13

2

的Lucene 3.4實現現在支持面搜索。在編制索引時,您指定了一些補充內容,並在搜索時按查詢和組進行搜索。

明年3個文檔,你指數與這些團體

doc1: monday, 1pm, 3min  
doc2: monday, 1pm, 4min  
doc3: monday, 2pm, 3min 

你只能搜索第一個參數:週一,並獲得價值:3, 或者可以向下鑽取並搜索週一/下午1點,並得到價值:2 或搜索3的設定深度,並得到

monday :3 
monday/1pm :2 
monday/1pm/3min :1 
monday/1pm/4min :1 
monday/2pm :1 
monday/2pm/3min :1 

這裏的source sample

但大多數Ø f全部閱讀faceted search