2016-09-27 11 views
8

クエリでemojisを受け付けるフルテキスト検索、またはテキストを検索するための別の種類のインデックスを作成します。たとえば、私はこのテキストを持っています:Playa @CobolIquique h'とPostgreSQLはそれを奇妙にemojisで解析します。Postgres - emojisを受け入れるフルテキスト検索

デバッグ、SELECT * FROM ts_debug('english','Playa @CobolIquique h');を使用して、私は次のような結果があります。

Results 1

をし、トークンはスペースシンボルと考えられている理由を私は知りません。私がパーサSELECT * FROM ts_parse('default', 'Playa @CobolIquique h');をデバッグすると、私は同じトークンを得て、トークンのタイプはts_token_type('default')です。絵文字タイプ(または類似のもの)はありません。では、文字列をスペースで正しく分割するパーサーを作成するにはどうしたらできますか?また、絵文字は空白として認識しません。または、emojisをクエリで使用できるテキストインデックスを作成するにはどうすればよいですか?

+0

私はフルテキスト検索に慣れていませんが、別の辞書(Snowballなど)で試してみましたか? https://www.postgresql.org/docs/current/static/textsearch-dictionaries.htmlを参照してください。辞書をカスタマイズする必要があるかもしれません(前のリンクの例を参照)。 – pietrop

+0

はい、私は別の辞書を試しました(私はすでに私のニーズに合ったものを作りましたが問題は前のステップ、それはパーサです): – FeanDoe

+0

'CREATE TEXT SEARCH PARSER'と' ALTER TEXT SEARCH PARSER '? https://www.postgresql.org/docs/9.6/static/sql-createtsparser.html – pietrop

答えて

1

デフォルトのものとは異なる新しいパーサーを作成するには、Cプログラマーでなければならず、独自のPostgreSQL extensionを記述する必要があります。この拡張モジュールでは、次の関数を定義する必要があります。モジュールを調べると、たとえば、次のような関数が定義されています:pg_tsparser

関連する問題