4

私のプロジェクトのファセット検索を実装したいと考えています。PHP5Mysqlおよびを使用してSymfony 1.4います。どうやらコミュニティは、私が達成したいことを正確に実行しているように見えるApache Solrを指しているようです。

問題は、Web サイトがセットアップを許可しないホスティング プロバイダーでライブになることですSolr(これは共有ホスティング環境であり、許可も実行もできTomcatませんSolr)。

Solr可能な代替案について、またはそのような環境でセットアップする方法があれば教えてください。

EDIT
私のホスティングプロバイダーは、サポートSOLRもソリューションもサポートしていませんopensolr。一般に、自分の環境を使用して、同じサーバーまたはリモート サーバー上のプロセスに接続することはできません。利用可能な唯一のオプションはZend_Search_Luceneを使用することです。では、これはファセット検索をサポートしていますか? または、別のオプションを念頭に置いている場合は、それを共有してください! 私はどこにもいないような気がします!

EDIT 2
この質問は、これまでの回答から約1週間開かれているため、ファセット検索を実装するためにPHPで利用できるライブラリ(サービスではない)がないことに驚いています(そして失望しています)。これは手動で実装するか、以下に示すソリューションを使用する必要があるようです

4

3 に答える 3

2

ホストを変更するか、Solr インデックスを別の場所でホストします

于 2012-10-08T12:33:40.850 に答える
1

パフォーマンスは良くなく、スケーリングについては説明しませんが、HTTP を介したリバース HTTP トンネリングをいつでも作成できます。基本的に、Web サーバーが Solr サーバーへのアウトバウンド接続を開くのではなく、Solr サーバーが Web サーバーに接続してジョブを要求し、ジョブの結果をポストします。

必要な作業:

  1. ブラウザが検索クエリを投稿すると、クエリはデータベースのキューに入れられます。
  2. リバース プロキシは定期的に Web サーバーに (通常のポート 80 経由で) 接続して、ジョブ キューからクエリのリストを取得し、クエリを Solr サーバーに渡し、結果を Web サーバーに POST します。
  3. ブラウザーは定期的に Web サーバーをポーリングして、完成した検索結果を確認します。

おまけ: サーバーが同時リクエスト処理を許可している場合は、ロング ポーリングを使用してレイテンシを改善します。

要するに、弾丸を噛んでまともなホストに移動します。

于 2012-10-16T15:49:30.700 に答える
0

Zend_Search_Lucene を避けるようにしてください。実際には高速ではありません。(PHPで実装されていて、デーモンとして実行されないことを考えると、それはかなり良いことです)

ホストを変更したくない場合は、Paul が提案した Hosted Solr が良い代替案のように思えます。

于 2012-10-10T19:31:13.567 に答える