私はあなたの質問に正確な答えを与えることはしませんが、あなたに代わりを与えるので、私を傷つけないでください。
そのためにzendを使用しないでください。非常に遅いです。私を信じてください。これは、すべての検索要求に対して完全にロードする必要がある、単なる悪い実装です。いくつかのベンチマークを実行するだけで、気付くでしょう。
luceneは確かにシャーディングをサポートしています(複数のサーバーにインデックスを配布し、別々にフェッチされた結果を結合します)
レプリケーションもサポートしているので、より良い方法です。
だからここに実際に役立つ部分があります:
http://lucene.apache.org/solr/でsolrをチェックしてください
。そのすべてのセットアップは、含まれているjettyを使用したインストール例を示しています。ワイルドカードフィールドを使用せずにフィールドをカスタマイズして開始する場合は、フィールドをカスタマイズする以外に何もする必要はありません。java -jar start.jar
サーバーが私が忘れたデフォルトのポートで実行されると、httppostを使用して新しいドキュメントを送信できるインターフェイスができます。これは、各アプリケーションサーバーのphpから実行できます。次に、コミットフラグを含めた場合、solrはインデックスを作成し、変更をコミットします。
httpインターフェースとsolr照会パラメーターを使用して索引を照会できます。次に、きちんとしたjsonまたはxmlformattetドキュメントを取得します。負荷の問題が発生した場合は、サーバーを複製できます。
ただし、すべてが稼働中であり、luceneがロードされ、クエリをすぐに処理できるため、サーバーはzendを使用して行う場合の1000倍のリクエストを管理します。
このステップバイステップのチュートリアルを確認するだけで、問題ないはずです:http:
//lucene.apache.org/solr/tutorial.html
あなたがそれをすべて好きではなく、とにかくzendに固執したい場合:
データベースは本質的に不可能ですが、ラッパーを作成することはできます。しかし、これはばかげているでしょう。この場合の最善の方法は、ネットワークファイルシステムを設定することです。
どんな質問でも、lemmeは知っています。
ps:選択肢に出くわしたときは、dismaxを使用することをお勧めします。ほとんどの場合、はるかに高速です。