2010-11-24 20 views
1

私のウェブサイトのファセット検索を設定しようとしていますが、問題が発生しています。solr phpクライアントで多値フィールドを使用してファセット検索を効率的に行うにはどうすればよいですか?

ファセットフィールドは、dynamic multiValuedフィールドとして設定されます。ほとんどの製品は、ファセットされたフィールドごとに1つの値しか持たないが(*は、格納されている製品属性のattributeidであるfq_ *と指定されている)、複数の値を持つものもある。

ファセット検索では、1つ以上の製品がファセット属性で複数の値を持つ商品カテゴリにアクセスしようとするまですごく素早く作業していました。このカテゴリ(とそれ以外のもの)では、PHPのsolrクライアントからエラーが発生します: "500" Status:Internal Server Error。

しばらく検索したところ、エラーを解決したという意味で "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

あなたがのために実際のパラメータ(それらのすべてを)投稿できますあなたの質問? – netcoder

+0

質問を編集してパラメータを追加しました。 – Chris

答えて

0

あなたはおそらくないのSolrのメモリの問題に実行されているが、Tomcatのの... Solrのファセットは、多くのメモリを取るとTomcatの通常のセットアップは付属しています:

編集は(ここではパラメータです)あなたが扱うとあなたのサーバーが利用できる持っている情報の量に

またはいくつかの他の適切な値 - 「Xmx3500m -Xms3500m」

(Linux)の輸出JAVA_OPTS =:非常に低いメモリの設定は、あなたのJAVA_OPTSのメモリを増やします。ここで

がこれにいくつかの良いリソースです: http://wiki.apache.org/tomcat/FAQ/Memory http://helpdeskgeek.com/how-to/increase-tomcat-memory-allocation/

関連する問題