2011-01-18 5 views
0

もし誰かが正しい方向に私を指し示すことができれば、最も役に立つでしょう。アップロードされたドキュメントのインデックス作成 - アップロードしたユーザーのみが検索可能

私は個々のユーザーがドキュメント(.doc .docx .pdf .rtf .txtなど)をアップロードして、それらのファイルの内容をキーワードで検索できるようにするカスタムCMSを作成しました。

CMSは、Linux環境内で完全にPHPとMySQLで書かれています。

アップロードしたドキュメントは、サーバー上のユーザー専用フォルダに「そのまま」格納されます。各ユーザーによって保管される文書の数は、数百であっても数千もあります。

特定のユーザーファイルは、そのユーザーのみが検索可能であることが非常に重要です。

誰かが正しい方向に向いていますか?私はSolrを見てきましたが、これらのタイプのソリューションはとても複雑です。私は一週間一回、さまざまなソリューションを見てきました。これが解決策を見つける最後の試みです。

ありがとうございます。

答えて

2

2の選択肢を試してみてください。

  1. ユーザーあたりの検索インデックス。彼らの文書は他の人とは別に索引付けされています。彼らは検索を行うときに、自分の検索インデックスにヒットします。他者の結果を見たり、他の文書の内容に基づいて得点を得たりする危険はありません。欠点は、索引を別々に保管して更新する必要があることです。インデックスが小さくなるので、私はLuceneをこのようなものに使うことを検討します。

  2. 単一の検索インデックス。ユーザーはすべて検索インデックスを共有します。検索結果はフィルタリングされ、そのユーザーに対してのみ結果が返されます。その上に、単一の検索インデックスを実装しています(Solrはこれに最適です)。欠点は、ユーザー検索の間にクロストークのリスクがあることです。スコアリングは他のユーザーの文書に影響され、検索結果が悪くなります。

は私がそれを言うことを憎むが、品質の観点から、私は1番2号は、より効率的かつ簡単に思える方に傾くだろうが、ユーザーの結果は私にとってより重要です。

+0

rfkありがとうございます - 私はSolrよりもLuceneそのものをもっと研究し、その周りに私のソリューションを構築します。ご協力いただきありがとうございます。 – David

0

パブリックディレクトリツリーの外部にファイルを保存し、ファイルのファイルパスと作成者のユーザーIDをデータベーステーブルに保存したまま、データベースクエリを使用してファイルを検索できます。あなたはもちろん、ユーザーがアカウントを作成してログインできるようにしなければなりません。あなたはそれらがphpを使ってファイルをダウンロードできるようにすることができます。

+0

dqhendricksさんのお返事ありがとうございますが、私はすでにこれを行っています。私の質問は、マルチユーザー環境でのこれらのファイルの索引付けと検索に関するものです。 – David

+0

@David ehh、ユーザーIDで画像ファイルパスを保持しているテーブルのインデックスを作成し、ユーザーIDと一致する画像のみを検索できるようにします... – dqhendricks

0

ユーザーのファイルがすべて孤立したディレクトリに置かれているか、ユーザーIDをファイル名に追加するなど、あるユーザーのドキュメントを指定する方法がある限り、grepを使用できます。

短所:

  • 各検索は、すべてのドキュメントを通過しなければならないので、あなたは、文書または非常に大きな文書の多くを持っている場合、それは遅いだろう。
  • WordやPDFなどのバイナリ形式の文書では、正確な結果が得られない場合があります。
  • これはエンタープライズソリューションではありません。

改訂答え:私は見mnoGoSearch

+0

各ユーザーには何千もの文書がある可能性がありますgrepは非常に遅いでしょう。この情報で私の質問を更新することは非常に重要です。 – David

+0

@David、mnoGoSearchを調べましたか?それを正しく設定することは難しいかもしれませんが、各ユーザーが独自のインデックスを持つ必要がある場合は、espでうまくいくと思います。 cronを使用してインデックスを生成するなど、長期的なシステム管理の問題があります。多数のユーザーがいると重くなります。 –

+0

私はmnoGoSearch Rogerを調べていませんが、上記で提案したrfeakとして、おそらく私の最良の選択肢は、まっすぐLuceneを使ってそこから作業することだと思います。ご協力いただきありがとうございます。 – David

関連する問題