sql >> データベース >  >> RDS >> PostgreSQL

tsvectorは英語のみをサポートしていますか?

    これで遊んでからしばらく経ちましたが、ts_queryではなく正しい言語でts_vectorを作成する必要があります。

    したがって、テーブルを更新するときは、次を使用します。

    UPDATE blog_entry SET body_tsv=to_tsvector('german', body);
    

    機能を拡張し、ispell辞書を使用して、テキスト検索エンジンのステミングを改善することもできます(ただし、Solrなどほど高度ではありません)

    これを行うには、次のようなISPELL辞書をダウンロードします。 OpenOfficeドイツ語辞書 に含まれています

    .oxtファイルは実際には.zipファイルであるため、その内容を簡単に抽出できます。

    次に、ファイルde_DE_frami.dicをコピーします 拡張子を.dictに変更しながら、PostgreSQLの「share/tsearch_data」ディレクトリに移動します (これはPostgreSQLが期待するものです。

    次に、ファイルde_DE_frami.affをコピーします 同じディレクトリに、拡張子を.affixに変更します 。

    PostgreSQLで動作させるには、両方の(テキスト)ファイルをUTF-8に変換する必要があります

    次に、次を使用してその辞書を登録します。

    CREATE TEXT SEARCH CONFIGURATION de_config (copy=german);
    
    CREATE TEXT SEARCH DICTIONARY german_stem (
        TEMPLATE = snowball,
        Language = german
    );
    
    CREATE TEXT SEARCH DICTIONARY german_ispell (
        TEMPLATE = ispell,
        dictfile = de_DE_frami,
        afffile = de_de_frami
    );
    
    alter text search configuration de_config 
         alter mapping for asciiword WITH german_ispell, german_stem;
    

    それが完了したら、次を使用してts_vectorを作成できます。

    UPDATE blog_entry SET body_tsv=to_tsvector('de_config', body);
    

    これは、マニュアルにも記載されています: http ://www.postgresql.org/docs/current/static/textsearch-dictionaries.html#TEXTSEARCH-ISPELL-DICTIONARY



    1. MONGODB Mongoimportの可能性はスピードアップしますか?

    2. テーブル値とその下の数値を含む値のリストを作成しようとしています

    3. OracleDBの引用列名

    4. mysqlの削除カスケードでどのように使用しますか?