[英]How do I do an efficient faceted search using multi-valued fields with solr php client?
我正在嘗試為我的網站設置多面搜索,但是遇到了問題。
構面字段設置為動態多值字段。 盡管大多數產品的每個多面字段只有一個值(指定為fq_ *,其中*是要存儲的產品屬性的attributeid),但有些產品具有多個值。
多面搜索的效果很好-不錯,而且非常快捷,直到我嘗試訪問一個產品類別時,其中一個或多個產品的多面屬性具有多個值。 對於此類別(以及其他類似類別),我從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"
}
);
您可能遇到的不是Solr而是Tomcat的內存問題... Solr的方面占用大量內存,而Tomcat的通常設置帶有非常低的內存設置,請增加JAVA_OPTS的內存:
(linux)導出JAVA_OPTS =“-Xmx3500m -Xms3500m”
或您處理的信息量以及服務器可用的其他一些適當值。
這里有一些很好的資源: http: //wiki.apache.org/tomcat/FAQ/Memory http://helpdeskgeek.com/how-to/increase-tomcat-memory-allocation/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.