私はasp.net MVCフレームワークに基づいてWebプロジェクトをやっています。 dbとして私はpostgre SQLを使用しています。質問は私のアプリケーションで検索を整理する方法です。 1つのオプションは、lucene.netなどの.netライブラリを使用することです。もう一つの選択肢は、Postgreのフルテキスト検索を使うことです。最適な選択肢は何ですか?postgres全文検索
1
A
答えて
3
私はプロダクションではpostgresを実行していませんが、かなりの量のデータを使ってテストDBで試しています。約600,000行のテキスト文字列を索引付けすると、3ワードの平均で120MBのフルテキスト索引が作成されます。クエリは、の後、の後に各検索語句の最初のものがこのインデックスに対して非常に高速です。各用語の索引をディスクからメモリに引く必要があるようです。私は起動時にインデックス全体をメモリに取り込む方法をまだ見つけていません。私は単一のラップトップHDで動作しているので、最初の遅さのいくつかはディスクIO関連かもしれません。また、120MBのインデックスに120MB以上のDBメモリが必要かどうかもわかりません。
生産用アプリケーションでは、Lucene for Javaを使用しており、数GBのインデックスデータで非常に良好な応答を示しています。 Luceneの利点は、1)DBに依存せず、2)配布可能であることです。 #1の場合、これは問題ではないかもしれませんが、基礎となるDBの種類にかかわらず同じインデックスコードを使用できることを意味します。 #2の場合は、アプリケーションの大きさによって異なります。 Lucene(とHadoopは特に)はマルチスレッドに設計されているので、インデックスを共有ドライブに格納して複数のマシンで同時に検索を実行できます(インデックスはまだシングルスレッドです)。あなたが望むかどうかは、あなたのアーキテクチャが何であるかによって決まります。あなたはむしろ1つの大きなDBまたは1つの中小DBとそれをサポートするいくつかの小さなインデックスサーバーを持っていますか?
関連する問題
- 1. チューニングPostgresの全文検索
- 2. Postgresによる全文検索
- 3. Postgres 9.3全文検索で単語の断片を検索する
- 4. postgres全文検索パーザにピリオドを追加
- 5. Postgres 9.6.1多くの音声言語の全文検索辞書
- 6. django 1.10 postgres全文検索が機能しない
- 7. 全文検索ランキング
- 8. 全文/フリーテキスト検索
- 9. CouchDB全文検索
- 10. が....全文検索
- 11. Firestore全文検索
- 12. H2全文検索の検索結果
- 13. 全文検索 - 検索語オーダー
- 14. Windowsの検索 - Cの全文検索#
- 15. 全文検索django postgresの組み込み全文検索を使用して特定の列を検索する
- 16. 全文検索とPython
- 17. ゲリットで全文検索?
- 18. 全文検索2テーブル
- 19. 全文検索の眺望
- 20. PostgreSQL全文検索フォーム
- 21. mongodb全文検索戦略
- 22. CRM 2011の全文検索
- 23. Postgresql全文検索トークナイザ
- 24. GAEで全文検索
- 25. sqliteの全文ワイルドカード検索
- 26. UTF8とDoctrine全文検索
- 27. Pythonの全文検索エンジン
- 28. Django - 全文検索 - ワイルドカード
- 29. Rails 3全文検索
- 30. MySQLの - >全文検索