0

Postgres 9.1 ショッピング カートには製品テーブルが含まれています

create table products (
  id char(30) primary key,
  name char(50),
  description text );

カートには検索フィールドがあります。何かが入力された場合、オートコンプリート ドロップダウンは、この基準に一致する製品を番号順に並べて、最も一致する製品を表示する必要があります。

postgres 9.1 でそのようなクエリを実装する方法は? 製品テーブルの名前と説明フィールドで検索を実行する必要があります。部分文字列一致を使用するだけで十分です。洗練されたテキスト マッチによる全文検索は、厳密には必要ありません。

アップデート

単語 joote は、製品名または説明の一部にすることができます.

たとえば、画像テキストの最初の一致には次のものが含まれる場合があります

.. See on jootetina ..

と他の製品

Kasutatakse jootetina tegemiseks ..

もう1つは大文字

Jootetina on see ..

この場合、クエリは単語 jootetina と一致カウント 3 を返す必要があります。検索語が Google Chrome のアドレス バーに入力されたときに発生する auotcomplete のように機能させるにはどうすればよいですか?

これを実装する方法は?

または、これが難しい場合、検索語 joote に一致するすべてのテキストから単語 jootetina を返す方法は?

4

2 に答える 2

1

まず、 data type を使用しないchar(n)でください。それは誤解varchar(n)ですtext。私は提案しtextます。

それが修正されたら、スマートなインデックスベースのアプローチが必要です。さもなければ、これはパフォーマンスの悪夢です。元の列のトライグラム GIN インデックス、またはtext_pattern_ops個々の単語の実体化されたビューの btree インデックス (カウント付き)。

MV アプローチは、単語間の繰り返しが多い場合におそらく優れています。

于 2016-09-30T12:29:56.100 に答える