2011-05-13 78 views
0

我用AdvancedDatabaseCrawler作爲我的搜索頁面中的基礎檢索自定義值。我配置了它,以便我可以搜索我想要的內容,並且速度非常快。問題是,只要您想要對需要訪問字段值的搜索結果執行任何操作,性能就會一覽無餘。因爲即使有搜索返回1000個結果,我只是每頁顯示10個或20個結果,這意味着我只需要檢索10個或20個項目如何配置Sitecore的搜索,從搜索索引

主要搜索結果的部分是好的。然而,在邊欄中,我列出了各種過濾選項,其中包含與每個過濾選項(eBay風格)關聯的數字或結果。爲了檢索這些篩選器選項,我根據搜索結果執行關係搜索。由於搜索結果只包含SkinnyItems它必須調用getItem()在每一個結果來獲得,以獲得我正在過濾由值實際的項目。換句話說,它會調用Database.GetItem(id)1000次!顯然這不是非常有效。

我在這裏錯過了什麼嗎?有什麼方法可以配置Sitecore搜索以從搜索索引中檢索自定義值?如果我可以搜索索引中的值,爲什麼我不能檢索它們?如果我不能,我還能如何處理結果而不從數據庫中獲取每個單獨的項目?

這裏是說我以後的功能的想法:http://cameras.shop.ebay.com.au/Digital-Cameras-/31388/i.html

回答

1

我已經通過定義各個領域,我需要通過過濾或搜索結果返回集合中的動態領域目前解決了這個。這樣我就可以實現所需的分面搜索,而無需從數據庫中獲取字段值。我假設通過添加動態字段,我們正在重建索引時獲得性能。但我可以忍受這一點。

在未來,我們可能會看到像使用Apache Solr實現的產物。