8

PostgreSQL と MySQL の全文検索システムはどのように比較されますか? オーダーよりも明らかに優れているものはありますか?それらはどのように異なっていますか?

4

6 に答える 6

7

PostgreSQL 8.3には、「tsearch2」の統合バージョンである全文検索が組み込まれています。

ドキュメントは次のとおりです:http ://www.postgresql.org/docs/8.3/static/textsearch.html

そして、ドキュメントからの例:

SELECT title
FROM pgweb
WHERE to_tsvector(body) @@ to_tsquery('friend');

bodyはテキストフィールドです。これらのタイプの検索に特化してインデックスを作成できます。もちろん、この単純な例よりも複雑になる可能性があります。機能は非常にしっかりしていて、決定を下すときに深く掘り下げる価値があります。

幸運を祈ります。

于 2008-09-29T03:39:48.290 に答える
5

更新: MySQL 5.6 以降、InnoDBは全文検索をサポートします

残念ながら、私は PostgreSQL に精通していませんが、MySQL で FULL TEXT 検索を使用すると、すぐに MyISAM に関連付けられます。InnoDB を使用したい場合 (そして、ACID 準拠があなたにとって何かを意味する場合は、InnoDB を使用する必要があります) は、他のソリューションの使用に行き詰まっています。

よく展開される 2 つの一般的な代替手段は、Lucene (PHP を使用している場合は Zend モジュールを含む apache プロジェクト) とSphinxです。

于 2008-09-26T21:15:31.223 に答える
2

Hibernate を ORM として使用している場合は、Hibernate 検索の使用を強くお勧めします。Lucene の上に構築されているため、超高速です。

カール

于 2009-05-01T08:58:21.050 に答える
1

私は、postgresql/tsearch2 でかなり良い経験をしてきました。特に、標準ディストリビューションに組み込まれてからです (バージョン 8.0 より前 - 私が思うに - これはオプションの contrib 機能であり、tsearch2 へのアップグレードには少し手間がかかりました)。

私の記憶が正しければ、起動前にいくつかのプロパティ (あいまい一致、辞書など) を設定する必要がありますが、他のデータベースでは、それらはフルテキスト構文自体を通じて柔軟に公開されます (ここでは Oracle Text について考えていますが、そうではないことはわかっています)。あなたの質問に関連しています)。

于 2009-09-23T14:31:18.737 に答える
0

Mysqlの全文検索は非常に遅いです。100万を超えるデータを処理することはできません(クエリごとに数十秒)。

postgresql全文検索を使用した経験はありません。

私はsphinxsearchを使用しました。非常に高速で使いやすいです。しかし、それはそれほど強力ではありません。私は検索機能を意味します。たとえば、「abc?」のようにサポートされていません。「?」任意の文字を表します。

私はluceneも知っています。それは強力ですが、学ぶのは難しいです。

于 2009-11-17T09:25:55.637 に答える
0

MySQL と Postgres の両方で Sphinx を使用できると思います。MySQLでSphinxを使用する方法を説明する記事は次のとおりです(プラグインとして追加できます)

于 2008-09-27T13:25:53.497 に答える