2016-10-08 5 views
0

私は、ユーザーが入力したキーワード/フレーズに基づいてコンテンツ検索を実行し、それらのキーワード/フレーズを含むエントリを返したいと考えています。 検索を実行するドキュメントは、バイナリデータとしてpostgressqlに格納されます。データベースでバイナリデータとして保存されたファイルに対してどのように索引付けを行うことができますか?

+0

インデックス作成にはどのツール/ APIを使用していますか? –

+0

私はlucene 3.6.1を使用しています。これは、フォルダ内にインデックスファイルを生成します。 私は試してみて、後でそれを検索中に使いたい。これは可能ですか?これらの索引ファイルをデータベースに入れて保管し、検索中にその列を参照してください。 @ SabirKhan – ExTincT

+0

インデックスを作成する目的は、後でそれらを検索することです。 Luceneも同じですし、Lucene 6.0.0以上を使用することをお勧めします。ルーセンはrdbmsではなくディスクに保存します。索引をrdbmsに格納することはできません。 –

答えて

1

最初の手順は、バイナリファイルから読みやすいテキストを取得することです。さまざまなファイルタイプのテキストを読むための良いライブラリはApache TIKAです。 https://www.postgresql.org/docs/9.6/static/textsearch.html

代替:

あなたの文書のうち、読み取り可能なテキストを持ったら、元のバイナリ文書にはいくつかの参照と一緒にPostgreSQLでこのテキストを格納し、検索のためにPostgreSQLの全文検索機能を使用する必要があるだろうデータベースの検索機能にはApache Luceneのようになります。これまでのところ、Apache Luceneを使ってかなりクールな結果が得られました。

+0

私はlucene.itを試してみましたが、number.canの中にあるこれらのファイルをデータベースに保存し、後でそれらを検索に使用するインデックスファイルを生成しますか?これは可能ですか? @sky – ExTincT

+0

申し訳ありませんが、間違ったライブラリを参照しました。さまざまなファイルタイプからテキストを読み込むために私が推奨しているのは、Apache TIKAです。これは仕事にとって素晴らしいです(私の答えを編集しました)。いいえ、私はそれがデータベースにLuceneインデックスを格納することは意味がないと思う - 私はLuceneがとにかくそれにアクセスできないと思います。インデックスはファイルシステム上に保持する必要があります。なぜあなたはそれをデータベースに入れたいのですか? – Sky

+0

私はバイナリデータとしてデータベースにアップロードされた文書を保存しているので、そのようにしたいと思っていました。検索している間は、バイナリデータを直接検索することができれば簡単でした(可能ならば)@sky – ExTincT

関連する問題