問題タブ [tsvector]

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.

0 投票する
1 に答える
726 参照

postgresql - PostgreSQL 全文検索: tsvector の部分一致を取得できません

問題は次のとおりです。

プレーン テキストと tsvectors のアドレスを持つ PostgreSQL のテーブルがあります。そして、このようなクエリで住所レコードを見つけようとしています。

しかし、問題は、クエリの住所について何も知らないことです。国、都市、または通りが着信文字列のどこにあるかを定義できません。住所の単語の順序がわかりません。また、余分な単語が含まれているかどうかもわかりません。

国と都市のみを検索できますが、着信文字列に通り、インデックス、またはその他のものが含まれている場合、すべてのベクトル トークンが結合されているため、検索は何も返しません。同時に、余分な単語が文字列のどこにあるのかわからないため、一部の文字列部分を削除したり、論理和を使用したりすることはできません。

では、tsquery を構築して、着信文字列に最適な一致を返す方法はありますか? それとも部分一致?tsquery のどこでもANDの代わりにORを使用するように強制しようとすると、ほぼデータベース全体が返されました。ベクトルの交差が必要です... postgresqlで。

0 投票する
1 に答える
87 参照

postgresql - Postgresql tsvector 構造

ほらここ。

用語の頻度をカウントするために tsvector を利用しようとしています。私はほとんどそこにいると思いますが、tsvector 構造から項を取得する方法が見つかりません。

私がやったことは、tsvector列を作成した後です: select term_tsv, count(*) count from (select unnest(term_tsv) term_tsv from document_tsv) t group by term_tsv order by count desc; 結果は次のようになり ます: stem_tsv | count ------------------------+------- (3,{9},{D}) | 1 括弧が表す式の種類がわからないために迷っています。シェルから用語を抽出する方法を誰か教えてもらえますか? ありがとうございました。

0 投票する
1 に答える
786 参照

postgresql - Postgresql で to_tsquery を使用して奇妙な結果を検索する

pro-physik.detsqueryのような式を検索すると、奇妙な結果が得られました。

tsqueryで要求すると、 でpro-physik:*始まるすべてのエントリを取得したいpro-physik。残念ながら、 のエントリはpro-physik.deありません。

問題を示す 2 つの例を次に示します。

クエリ 1:

結果 1: false( である必要がありますtrue)

クエリ 2:

結果 2:true

この問題を解決する方法を知っている人はいますか?

0 投票する
0 に答える
96 参照

postgresql - Postgres: 語彙素に基づいてオントロジーを導出する

Postgres の tsvector 列から発生統計を取得する方法はありますか?

たとえば、次の 3 つの tsvector を考えてみましょう。

クエリの結果が

('sun' 'happy') の組み合わせのスコアがさらに高くなるように語彙素間の距離を考慮する方法はありますか?

すべての助けに感謝します

アンディ

0 投票する
1 に答える
1205 参照

postgresql - tsvector_update_trigger によって最初に入力された tsvector 列を再作成する方法

Postgres 9.4 を実行しています。

このトリガーによって入力された main_search_index_col という列があります。

先に進み、unaccent_english (public.unaccent_english) という新しいテキスト検索構成を作成して、pg_catalog.english を置き換えました。

上記のトリガーを削除し、pg_catalog.english の代わりに public.unaccent_english を使用してやり直しました。

the_entries にトリガー main_vector_update をドロップします。

しかし、私が理解しているように、行が更新されるか新しい行が追加されない限り、main_search_index_col の値は変更されません。

代わりに、行ごとに main_search_index_col を更新して更新するか、列を削除して完全に再作成し、新しいフォームのトリガーが常に存在しているかのように入力したいと考えています。

新しいトリガーに対して列 main_search_index_col の内容を正しくするにはどうすればよいですか?

また、tsvector_update_trigger の正確な定義を確認するにはどうすればよいですか? その定義を読むことができれば、独自のソリューションを作成するのに役立つと思います.