3
我正在關注postgresql中FullTextSearch的documentation。我創建了一個tsvector列並添加了我需要的信息,最後我創建了一個索引。 現在,要做搜索,我必須執行這樣postgresql全文搜索查詢到Django ORM
SELECT *, ts_rank_cd(textsearchable_index_col, query) AS rank
FROM client, plainto_tsquery('famille age') query
WHERE textsearchable_index_col @@ query
ORDER BY rank DESC LIMIT 10;
我希望能夠與Django的ORM執行這個,所以我可以得到的對象的查詢。 (這裏有一個小問題:是否需要將tsvector列添加到我的模型中?) 我的猜測是我應該使用extra()更改查詢集中的「where」和「tables」
也許如果我更改查詢到這一點,它會更容易:
SELECT * FROM client
WHERE plainto_tsquery('famille age') @@ textsearchable_index_col
ORDER BY ts_rank_cd(textsearchable_index_col, plainto_tsquery(text_search)) DESC LIMIT 10
所以ID」必須做這樣的事情:
Client.objects.???.extra(where=[???])
Thxs您的幫助:) 另一件事,我使用Django 1.1
我試過了,但它引發了一個錯誤,說這個查詢的語法存在問題,這很奇怪,因爲我接受了qs.query並直接在數據庫中執行,並且它工作正常,我猜問題出在「plainto_tsquery('%s')中的單引號」 – pleasedontbelong 2010-08-13 08:54:49
http://barryp.org/blog/entries/postgresql-full-text-sear ch-django /使用「額外」 – Stefano 2012-07-20 10:22:47