4

英語の辞書を使用した完全なテスト検索で Postgresql を使用しています。いくつかの英単語を含むレコードを受け取りたい場合、正しい結果が得られます。

など:

SELECT id FROM table1 WHERE ts_vector1 @@ to_tsquery('it')

0 の結果を返します。

SELECT id FROM table1 WHERE ts_vector1 @@ to_tsquery('specialist & it')

0 を超える結果を返します (単語「it」がテーブルとインデックスに存在します)。ts_vector1 は次のように作成されます。

ts_vector1 = to_tsvector('english', some_text_column)

「それ」は予約語ですか?もしそうなら、予約語を「エスケープ」する最良の方法は何ですか?

4

2 に答える 2

4

関連するドキュメントによると、「It」はストップワードとして無視されます。

http://www.postgresql.org/docs/current/static/textsearch-controls.html

上記の例では、結果の tsvector に単語 a、on、または it が含まれていないことがわかります。単語 rats は rat になり、句読点記号 - は無視されました。

必要な辞書を構成することで、ストップ ワードのリストを変更できます。

http://www.postgresql.org/docs/current/static/textsearch-dictionaries.html

于 2013-10-02T12:13:14.130 に答える