2017-03-01 31 views
2

チェコ語の全文検索を設定しようとしています。 cs_cz.affixcs_cz.dictというファイルがtsearch_dataフォルダ内にあるのがわかりますが、チェコ語の設定はありません(Postgresには含まれていない可能性があります)。チェコ語のPostgresql全文検索(デフォルト言語の設定なし)

私はそれを作成する必要がありますか?どのdicsを作成/設定する必要がありますか?チェコ語のサポートはありますか? 可能なすべてのディクテーションを使用する必要がありますか? (Synonym Dictionary, Thesaurus Dictionary, Ispell Dictionary, Snowball Dictionary

ispell dictのチェコ語の設定を作成できます。うまくいきました。十分なのかどうかは分かりません(ちょうどispell設定)。

ありがとう、私はhttps://www.postgresql.org/docs/9.5/static/textsearch.htmlを読もうとしましたが、ちょっと混乱しています。

答えて

1

私はそれを試したことはありませんが、ソースからPostgreSQLをコンパイルする準備ができている限り、Czech Snowballのstemmerを作成できるはずです。

src/backend/snowball/READMEでの説明があります:

src/backend/snowball/libstemmer/src/include/snowball/libstemmer/下のファイルは、ファイルの介在物の唯一のいくつかのマイナーな調整を、そのlibstemmer_c 分布から直接取得されているが。注釈 これらのファイルのほとんどは、実際にはマスタソースではなく、派生ファイルであることに注意してください。 マスターソースはSnowball言語であり、SnowballプロジェクトのSnowball-to-Cコンパイラで に沿って利用できます。ほとんどの インストールにはSnowballコンパイラが利用できないため、 にはPostgreSQLディストリビューションの派生ファイルが含まれています。例

for f in libstemmer_c/src_c/*.c 
do 
    sed 's|\.\./runtime/header\.h|header.h|' $f >libstemmer/`basename $f` 
done 

(のために、"header.h"によって

  1. コピーlibstemmer_c/src_c/"../runtime/header.h"の交換と src/backend/snowball/libstemmerにで*.cファイル:新しいスノーボールlibstemmer_c 分布からPostgreSQLのソースを更新するには

    また、スティールボールのマスターファイルからステマーファイルを再構築する場合は のソースは、ちょうど src/backend/snowball/libstemmerlibstemmer_c/runtime/で)。

  2. コピー*.cファイルを雪玉コンパイラ・スイッチから"-r ../runtime"省略し、直接介在物システムヘッダの など<stdio.h> –は、彼らが唯一の"header.h"を含める必要がありますを削除するには、それらを編集します。 (この除去は、<stdio.h> はのlargefileコンパイルオプションに敏感であるいくつかのプラットフォームに移植性の問題を回避することができます。)

  3. コピーlibstemmer_c/src_c/libstemmer_c/runtime/*.hファイルがsrc/include/snowball/libstemmerに。この記事では、ヘッダファイル は変更を必要としません。

  4. ステマーモジュールが追加または削除されているかどうかを確認してください。その場合は OBJSのリストをMakefileに、#includeのリストをdict_snowball.cに、 stemmer_modules[]のテーブルをdict_snowball.cに編集してください。

  5. stopwords/のさまざまなストップワードファイルは、snowball.tartarus.orgウェブサイトのページから個別に をダウンロードする必要があります。 これらのファイルをUTF-8エンコーディングで保存する必要があることに注意してください。

here可能なチェコのスノーボールステマーがあり、それがプロジェクトに貢献しました。利用できるストップワード辞書はありませんが、私はあなたが自分を見つけたり、自分で作成したりすることができると確信しています。

Snowballをインストールし、Snowball-to-Cコンパイラを使用してPostgreSQLソースに追加するCとヘッダファイルを作成するのが実際の作業です。 これらのファイルは安定しているはずですので、新しいPostgreSQLバージョンにアップグレードするのは難しくありません。

作業をしたいが、PostgreSQLにパッチを当てずに毎回ソースからビルドしたくない場合は、PostgreSQLへのパッチの提出を検討することもできます。ステムメルが正常に機能する限り、私はあなたがそこで多くの抵抗を期待することはありません(ただし、パッチの提出プロセスはまだ面倒です)。

+1

ありがとうございました! – wilima

+0

私はガイドラインに従い、このコミット(別名パッチ)を作成しました:[postgres_snowball_czech](https://github.com/datlowe/postgres_snowball_czech/commit/4363325f719a463fce04c04cbcdcc7e625cdbca5)派生した 'docker'イメージはhttps:// githubで見つけることができます.com/datlowe/postgres-pgq-tsearch-czech – dedek

+0

https://wiki.postgresql.org/wiki/Submitting_a_Patch –

関連する問題