私の問題とタスクを簡単に説明しようと思います。私の仕事は、html ではなく、さまざまな種類のファイル (テキスト ファイルの種類のみ) pdf、word、odf、xml 用の検索エンジンを作成することです。私は約 1 年前に lucene の経験がほとんどなく、lucene と hibernate 検索を使用して単純な全文検索を作成しました。それは単純なプロジェクトでした。しかし今、私は検索で非常に難しい仕事をしています。私たちはJava 1.7とglassfish 3を使用しており、クライアントUIではなくサーバー側のアプローチのみに集中する必要があります。私の3つの主要な問題は次のとおりです。
1) すべてのファイルは webdav サーバーに保存されますが、ファイル名、id ファイルの種類などに関する情報はデータベース (postgresql) に保存されるため、インデックスを作成するときに両方の情報を使用する必要があります。クエリの結果として、データベースからファイル ID を返すだけで済みます。ファイルの要約コンテンツはサーバーに保存されますが、ファイルに関する情報はデータベースに保存されるため、両方を取得する必要があります。
2) 二次的な問題は、各ファイルに機密レベルがあることです。しかし、大きな問題は、このレベルが動的に計算されることです。ファイルのセキュリティ レベルを計算するときは、いくつかのプロパティを考慮します。静的プロパティは、ファイルの場所、ファイルがあるフォルダーだけでなく、動的情報ユーザー プロファイル ユーザー ロールと部門です。したがって、ユーザー「Maggie」がログに記録されている場合、彼女はファイル「test.pdf」、「test2.doc」などしか検索できませんが、ユーザー「Stev」がログに記録されている場合、Maggie などの異なるプロファイルを持っているため、ファイル内の特定のフェーズのみを検索できます。 「broken.pdf」、「mybook.odt」。test2.doc など ..... たとえば、ユーザー検索フェーズ「lucene + solr」の場合、すべてのインデックス付きドキュメントを検索し、その後フィルタリングされた結果になると思います。しかし、その解決策はあまり効率的ではないと思います。結果が 100 個のファイルをカウントする場合はどうなるでしょうか。次に、各ファイルを段階的にフィルタリングするのはどうでしょうか。しかし、私は他の解決策を見ません。多分あなたは私を助けることができます.luceneまたはsolrは助けるメカニズムを持っています.
3) 最後の問題は、一部のファイルが暗号化されていることです。そのため、ファイルは暗号化の前に 1 回だけ索引付けする必要があります。しかし、安全なファイルにインデックスを付けると、セキュリティの問題が発生すると思います。そのファイルのすべての単語がトークン化されているためです。lucene ドキュメントとインデックス データストアを保護する方法がわかりません。それが可能だ ...
また、検索エンジンに Solr を使用する必要があるか、または lucene のみを使用して独自の検索エンジンを作成する必要があるかという質問があります。ご覧のとおり、インデックス作成、検索には問題がありませんが、セキュリティ ファイルとファイルの保護レベルには問題がありません。
あなたが私のために費やしたヒントと時間をありがとう.