問題タブ [pg-trgm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - pg_trgm で 3 億のアドレスを検索
PostgreSQL 9.3 DB に 3 億のアドレスがあり、pg_trgm を使用して行をあいまい検索したいと考えています。最終的な目的は、Google マップ検索のような検索機能を実装することです。
pg_trgm を使用してこれらのアドレスを検索したところ、結果を取得するのに約 30 秒かかりました。デフォルトの類似度しきい値条件 0.3 に一致する行は多数ありますが、必要な結果は 5 ~ 10 程度です。トリグラム GiST インデックスを作成しました。
これは私のクエリです:
本番環境のテスト テーブルは削除されました。EXPLAIN
テスト環境からの出力を示します。約 700 万行あり、結果を得るには約 1.6 秒かかります。3億で、30秒以上必要です。
パフォーマンスを改善する良い方法はありますか、それともテーブルのパーティション分割を行うのは良い計画ですか?
postgresql - Postgresトライグラム検索でのAND OR NOTの構文は何ですか?
Postgres 9.6 トライグラム検索https://www.postgresql.org/docs/9.6/static/pgtrgm.htmlをアプリケーションに実装しました。これは、単一の検索用語に対して正常に機能します。
ただし、ユーザーが AND OR NOT 検索を実行できるようにする方法がわかりません。
現在、「perl」を検索フィールドに入力すると、何百もの結果が返されます。それは素晴らしく、うまく機能します。
"perl" と "javascript" を含むドキュメントを検索したい場合、どんな検索語を入力しても結果が返ってきません。
私は例えば試してみました:
そのため、単一の用語のみよりも洗練された検索をエンド ユーザーに提供するにはどうすればよいかを考えています。アプリケーション ユーザーが and/or/not を使用して全文検索できるようにしたいと考えています。
出来ますか?はいの場合、構文は何ですか?