。私は複数のZend_Search_Luceneインデックスをデータ型ごとに1つずつ使用しました。 「すべて」オプションについては、単にすべてのインデックスのすべてを含む別のインデックスを持っていたので、インデックスにドキュメントを追加したときに、適切な「タイプ」インデックスに1回、「すべて」 "インデックス。 Zend Luceneは、他のLuceneの実装と比べて深刻に劣っているので、これが私が見つけた最良の解決策でした。 Zendのポートはluceneクエリー構文のサブセットのみをサポートしていますが、中程度のインデックス(10-100 MB)であっても "a *"と同じくらい単純なクエリーや引用フレーズは適切に実行できませんまったく)。私たちは当社のプラットフォーム上に大規模なサイトを持ってきたとき
、我々は、Zend Luceneのはスケールしないことを発見しました。我々のインデックスは約1.0 GBに達し、簡単なクエリには最大15秒かかりました。いくつかのクエリには1分以上かかりました。インデックスを一から作成するには約20時間かかりました。
私はSolrに切り替えました。 Solrはインデックス作成中に50倍高速化するだけでなく、多くのクエリで1000倍高速に処理できます(ほとんどのクエリは< 5msで終了し、すべてが< 100msで終了します)。また、30,000分(20時間から)で、100,000件以上の文書インデックスをゼロから再構築することができました。今
、すべての「タイプ」フィールドで1つのSolrのインデックスで、私は、検索ごとにインデックスに対して複数のクエリを実行します。各クエリは、それぞれ異なる「タイプ:」フィルタクエリと、「すべて」オプションの「タイプ:」がありません。
インデックスを100MB以上に増やす予定がある場合は、少なくとも1分あたりの検索要求が少なくて済みます。また、高度な検索機能を提供したい場合は、Zend_Search_Luceneを放棄することを強くおすすめします。
このクラスをどのようにロードするのですか? – Druckles