2
我想問一下RavenDb中是否有方法執行分面搜索,但也會得到濾出的分面。RavenDb分面搜索,包含過濾掉的分面範圍
例子:
讓我們Car
實體性質Color : string
和Status : enum(New,Used)
。
當我搜索Red
汽車我也想得到所有其他顏色的計數。同樣,如果我搜索Used
汽車,我也想看看新車的數量。
如果我把一切都選中:
UI
Color: [ ] Red (5) [ ] Blue (7) [ ] White (15)
Status: [ ] Used (20) [ ] New (7)
C#
session.Query<Car, Cars_Index>().ToFacets("facets/Cars");
我得到正確的結果。
但是,一旦我篩選既Color
和Status
我得到的效果非常有限:
UI
Color: [x] Red (3)
Status: [x] Used (3)
C#
session.Query<Car, Cars_Index>()
.Where(a => a.Status == CarStatus.Used)
.Where(a => a.Color == "Red")
.ToFacets("facets/Cars");
Response (JSON):
{ "Color": [ { "Range": "Red", "Count": 3 } ], "Status" : [ { "Range": "Used", "Count": 3 } ] }
我所目前我發出每個面一個單獨的查詢:
var colorFacet = session.Query<Car, Cars_Index>()
.Where(a => a.Status == CarStatus.Used)
.ToFacets("facets/Cars");
var statusFacet = session.Query<Car, Cars_Index>()
.Where(a => a.Color == "Red")
.ToFacets("facets/Cars");
我想實現:
UI
Color: [x] Red (3) [ ] Blue (4) [ ] White (12)
Status: [x] Used (3) [ ] New (7)
所以得到的紅色使用數量汽車,藍色二手車,白色二手車和用戶紅色汽車和新紅色汽車。因此,用戶可以立即獲得反饋,當他點擊複選框時會發生什麼。
隨着方面數量和變化的不斷增長變得難以管理。有沒有辦法設置它,它可以在一個請求/查詢中執行。
感謝
嗯,很抱歉聽到這些。但是我擔心這是Lucene的一個特性,而不是RavenDB的特性,所以甚至沒有把它作爲RavenDB特性請求的改變 – puco 2012-08-14 14:42:18