6

このタイプのSolrクエリをエミュレートしたいと思います。

http://wiki.apache.org/solr/MoreLikeThis

全文検索機能を使用するPostgreSQLで。

純粋なpostgresで「もっとこのような」クエリのようなことをする方法はありますか?

4

1 に答える 1

2

箱から出していないので、怖いです。2つのtsvectorを比較して、それらが十分に類似しているかどうかを判断したり、上位n個の類似したtsvectorをプルしたりすることは可能かもしれませんが、これを行うためのすぐに使用できる機能はありません。良いニュースは、tsvectorsがGINインデックスをサポートしているため、複雑な部分が自動的に行われることです。

あなたがする必要があると思うのは、2つのtsvectorの交点を決定する関数をCで作成することです。そこから、それらが重複しているかどうかを判断する関数と、これに対処する演算子を作成できます。そこから、最大のオーバーラップに基づいてランキングを作成するのはそれほど難しいことではありません。

もちろん、これはCのような言語で行うのが最も簡単だと思いますが、必要に応じて他の手続き型言語を使用することもできます。

PostgreSQLの素晴らしいところは、何でも可能だということです。もちろん、欠点は、コア機能からさらに離れると、自分で多くのことを実行できるようになることです。

于 2013-04-02T04:38:42.277 に答える