ここで問題です:PostgreSQLの全文検索:カントはのtsvectorの部分一致を得る
私はプレーンテキストとtsvectorsで住所がではPostgreSQLのテーブルを持っています。そして、私はこのようなクエリでアドレスレコードを見つけようとしています。
SELECT * FROM address_catalog
WHERE address_catalog.search_vector @@ to_tsquery('123456:* & Klingon:* & Empire:* & Kronos:* & city:* & Matrok:* & street:* & 789:*')
しかし、問題は私がクエリのアドレスについて何も知らないということです。私は、国、都市、または通りが入ってくる文字列のどこにあるのかを定義することはできません。私は住所がどのような言葉の順序をしているのか、それとも余分な言葉を含んでいるのか分かりません。
国や都市のみを検索できますが、入力文字列に通り、インデックスなどが含まれている場合、すべてのベクトルトークンが連結されているため、検索結果は何も返されません。同時に、文字列のどこに余分な単語があるのかわからないので、一部の文字列部分を削除したり、分離を使用することはできません。
それで、入ってくる文字列に最適な一致を返すためにtsqueryを構築する方法はありますか?または部分一致かもしれませんか?私がそれをまたはの代わりにの代わりに使用するように強制しようとしたとき、そしてどこでもtsqueryでが返ってきました。 postgresqlでベクトル交差が必要です。