0

Symfony 1.0 プロジェクトで、PostgreSQL db を使用して Propel 1.2 を使用しています。次のように、Postgres 関数を使用するために、SELECT ステートメントで Criteria::CUSTOM を使用できます (全文検索)。

`$c = 新しい基準();

$c->add(MyTablePeer::FULLTEXT_COLUMN, MyTablePeer::FULLTEXT_COLUMN." @@ to_tsquery('english', 'text to search')", Criteria::CUSTOM);`

レコードの選択については問題ありませんが、INSERT についてはどうでしょうか。現在、生の SQL クエリを使用していますが、より洗練された方法で実行したいと考えています。Symfony の Web サイトでこのスニペットを見ましたが、コードが多く、私のニーズには合いません。パフォーマンスは非常に重要であるため、生の SQL を記述するよりも優れたソリューションはおそらくありません。

$object->setFulltextColumn($parameters) のようなカスタム セッターを作成するにはどうすればよいですか?

前もって感謝します

4

1 に答える 1

0

フルテキスト列の挿入/更新には、トリガーを使用しないのはなぜですか? 行のテキストを変更すると、フルテキスト列が自動的に更新されます。

CREATE TRIGGER my_table_fulltext_trigger 
BEFORE INSERT OR UPDATE ON my_table 
FOR EACH ROW EXECUTE PROCEDURE tsvector_update_trigger(
  'fulltext',
  'pg_catalog.english', 
  'column_with_text_1', 
  'column_with_text_2', 
  'column_with_text_N'
);

プロシージャのパラメーターはtsvector_update_trigger、tsvector フルテキスト列の名前、言語構成、およびインデックスを作成するすべての列の名前です。

于 2009-07-29T23:56:37.787 に答える