,我安裝acts_as_tsearch
插件和它的作品成功,但是當我後來試了一下,我發現一個錯誤ts_rank_cd(文字,tsquery)不存在
runtimeError: ERROR C42883 Mfunction ts_rank_cd(text, tsquery) does not exist HNo function matches the given name and argument types. You might need to add explicit type
,我安裝acts_as_tsearch
插件和它的作品成功,但是當我後來試了一下,我發現一個錯誤ts_rank_cd(文字,tsquery)不存在
runtimeError: ERROR C42883 Mfunction ts_rank_cd(text, tsquery) does not exist HNo function matches the given name and argument types. You might need to add explicit type
編輯
ts_rank_cd(text, tsquery) does not exist
這意味着沒有函數與此名稱接受文本和tsquery參數作爲輸入。這是正確的,PostgreSQL沒有使用這些參數的函數。
ts_rank_cd([ weights float4[], ] vector tsvector, query tsquery [, normalization integer ])
更改的功能ts_rank_cd()輸入,你將被罰款。
您需要將您的第一個參數轉換爲tsvector。
因此,讓我們假設您正在搜索名爲foo.text
的列。您將要從此改變:
SELECT ts_rank_cd(foo.text, plainto_tsquery('my search terms')) FROM foo;
這樣:
SELECT ts_rank_cd(to_tsvector(foo.text), plainto_tsquery('my search terms')) FROM foo;
或類似的東西。
如果您在其他地方使用@@
運算符,則通常可以重新使用運算符運算的表達式。
有關to_tsvector
的更多文檔在http://www.postgresql.org/docs/current/static/textsearch-controls.html#TEXTSEARCH-PARSING-DOCUMENTS