私にはポストを持つテーブルがあり、そのポストを使って全文検索をしたいと考えています。投稿はさまざまな言語で表示され、投稿数は大きすぎます。だから私は、テキスト列の言語を追加することができ、我々は持っているでしょう:データベース設計、全文検索の多言語化(PostgreSQL)
Posts:
post_id bigserial PK
post text
post_ts tsvector
language text
を(さらに私はGINインデックスを追加します)
をそして、私は英語のクエリテキストを検索するとき、私は「どこの言語= 'を追加します"english":
ここからto_tsquery( 'english'、 'some query string')@@ post_tsとlanguage = 'english'を選択してください。
したがって、postgresプロセスでは、英語の投稿とスキップを含む行のみが検索されます。他の行をスキップする追加の時間はありますか?主キーに列言語を追加すると、これが役に立ちますか?それとも、異なる言語の異なるテーブルを作るために、パフォーマンスのためのより良いのだろうか?(Posts_en、Posts_fr、Posts_it)
異なるテーブルに分ける価値があるとは言いにくいですが、クエリに 'language = 'english'と' language 'があり、言語がインデックスに登録されていれば(インデックスはオプティミーズにとって有益です)はいインデックスを使用する必要があります –