問題が発生しました。ローカライズされたコンテンツ(特にロシア語)で全文検索を設定しようとしています。問題はデフォルト設定(私のカスタムと同様)が文字の場合を処理しないことです。例:Postgresql全文検索トークナイザ
SELECT * from to_tsvector('test_russian', 'На рынке появились новые рублевые облигации');
> 'На':1 'новые':4 'облигации':6 'появились':3 'рублевые':5 'рынке':2
'На'はストップワードであり、削除する必要がありますが、結果ベクタでも小文字ではありません。私は小文字の文字列を渡すと、すべてが正常に
SELECT * from to_tsvector('test_russian', 'на рынке появились новые рублевые облигации');
> 'новые':4 'облигации':6 'появились':3 'рублевые':5 'рынке':2
簡単な辞書テンプレートは、下部ケースに トークンの入力を変換してチェックすることによって動作し、私は事前に小文字の文字列を渡すことができますが、マニュアルは
を言う確かに動作しますそれはストップワードのファイルに対して。
コンフィグrussian_test
は次のようになります。
create text search CONFIGURATION test_russian (COPY = 'russian');
CREATE TEXT SEARCH DICTIONARY russian_simple (
TEMPLATE = pg_catalog.simple,
STOPWORDS = russian
);
CREATE TEXT SEARCH DICTIONARY russian_snowball (
TEMPLATE = snowball,
Language = russian,
StopWords = russian
);
alter text search configuration test_russian
alter mapping for word
with russian_simple,russian_snowball;
しかし、私は実際にビルトインrussian
設定と全く同じ結果が得られます。
私は予想通り、ts_debugとトークンをword
として扱いました。
アイデア?