我正在尝试为我的网站设置分面搜索,但遇到了问题。
构面字段设置为动态多值字段。虽然大多数产品每个分面字段只有一个值(指定为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"
}
);
答案 0 :(得分:0)
你可能遇到的内存问题不是Solr,而是Tomcat ...... Solr的刻面占用大量内存,而Tomcat的常用设置是内存设置非常低,增加了JAVA_OPTS的内存:
(linux)export JAVA_OPTS =“ - Xmx3500m -Xms3500m”
或您处理的信息量和服务器可用的其他适当值。
以下是一些很好的资源: http://wiki.apache.org/tomcat/FAQ/Memory http://helpdeskgeek.com/how-to/increase-tomcat-memory-allocation/