2
我有一個posts
,它有一列tags
。我希望能夠在標籤上進行全文搜索。對於VARCHAR
列我使用:Postgres全文檢索Array列
CREATE INDEX posts_fts_idx ON posts USING gin(to_tsvector('english', coalesce(title, ''));
SELECT "posts".* FROM "posts" WHERE (to_tsvector('english', coalesce(title, '')) @@ (to_tsquery('english', 'ruby')));
然而,character varying[]
功能to_tsvector
不存在。如何編寫一個針對每個標籤運行的查詢(理想情況下是否匹配任何單個標籤匹配)?
注:我看,這將是很容易做到轉換爲字符串(array_to_string
),但如果可能的話,我想每一個人標籤轉換爲tsvector
。
感謝您的迴應,但不會使用全文搜索。這需要精確匹配,並且不會考慮拼寫和英語的相似性(即跳舞與跳舞)。 –
是的,我有點在我的問題中提出 - 我試圖在數組的每個元素上應用tsvector - 不加入數組然後應用。問題是這將匹配標籤之間的字符串。 –
爲了達到這個目的,你必須將標籤移動到一個單獨的表格中。我沒有看到任何其他的可能性。 – TavoloPerUno