2009-07-01 6 views
0

私はPropf1.1をPostgreSQL dbのSymfony 1.0プロジェクトで使用しています。私はCriteria :: CUSTOMをSELECT文で使うことができます。これは、全文検索のようにPostgres関数を使うためです:SQL特有のものを持つカスタムセッターを推進する

`$ c = new Criteria();

$ C->追加(MyTablePeer :: FULLTEXT_COLUMN、MyTablePeer :: FULLTEXT_COLUMNを "@@ to_tsquery( '英語'、 '検索対象のテキスト')"、基準:: CUSTOM。); `

大丈夫だことレコードを選択するためには、INSERTについてはどうですか?私は現時点では生のSQLクエリを使用していますが、私はよりエレガントな方法でそれをやりたいと思います。 Symfonyのウェブサイトでこのsnippetを見ましたが、それは多くのコードであり、私のニーズに合っていません。 パフォーマンスは非常に重要なので、多分生のSQLを書くよりも良い解決策はありません。

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

はなぜトリガを使用しない、フルテキスト列の挿入/更新の場合は、事前

答えて

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フルテキスト列、言語設定、およびインデックスへのすべての列の後、名前の 名前。

+0

いいえ、トリガーは解決策ですが、それは生のSQLです、私が言ったように、Propelのトリックはこのケースには適していません。 ありがとうございました! – danieli

関連する問題