我正在嘗試爲我的網站設置多面搜索,但遇到問題。如何使用solr php客戶端使用多值字段進行高效的分面搜索?
構面字段被設置爲動態multiValued字段。雖然大多數產品對每個分面的字段都只有一個值(指定爲fq_ *,其中*是要存儲的產品屬性的屬性ID),但有些值具有多個值。
分面搜索工作得很好 - 直到我嘗試訪問我們產品的一個類別,其中一個或多個產品在一個分面屬性上具有多個值時。對於這個類別(和其他類似的),我從php solr客戶端得到一個錯誤:「500」狀態:內部服務器錯誤。
搜索了一段時間後,我發現設置facet.method等於「enum」,它解決了錯誤 - 但是這增加了大量加載頁面所花費的時間。
有沒有什麼辦法可以更有效地進行這樣的多面搜索? (我可以處理它比「fc」方法稍長一點,但不是太多)。
謝謝。
編輯(這裏的參數):
$solr->search('categoryid:4810', 0, 15, array(8) {
["sort"]=>
string(17) "price_Default asc"
["facet"]=>
string(4) "true"
["facet.field"]=>
array(12) {
[0]=>
string(7) "mfgname"
[1]=>
string(14) "fq_33111116587"
[2]=>
string(14) "fq_33111116586"
[3]=>
string(14) "fq_33111114704"
[4]=>
string(11) "fq_33113118"
[5]=>
string(9) "fq_331472"
[6]=>
string(10) "fq_3312052"
[7]=>
string(9) "fq_331611"
[8]=>
string(10) "fq_3312304"
[9]=>
string(14) "fq_33111116919"
[10]=>
string(9) "fq_331100"
[11]=>
string(9) "fq_331710"
}
["facet.sort"]=>
string(5) "false"
["facet.mincount"]=>
int(1)
["facet.missing"]=>
string(5) "false"
["facet.limit"]=>
int(-1)
["facet.method"]=>
string(4) "enum"
}
);
你能後的實際參數(所有的)爲您的查詢? – netcoder 2010-11-24 20:32:11