![](/img/trans.png)
[英]Postgres Full Text Search using TSVECTOR and special UTF8 characters
[英]Postgres - Create index for full text search using 3 + columns with to_tsvector
Postgres全文搜索文檔中的所有示例都顯示了通過串聯2列來創建索引的方法,但是我無法解決3+列如何做到這一點。 Postgres文檔中的示例:
to_tsvector(title || ' ' || body)
例如,如果我有另一列應通過稱為description
進行搜索,則該語法似乎不符合我的期望:
to_tsvector(title || ' ' || body || ' ' || description)
當我嘗試它時,它會產生這樣的索引:
to_tsvector('english'::regconfig, ((("CompanyName" || ' '::text) || "Title") || ' '::text) || "Description")
似乎還有一組額外的括號包圍着CompanyName
和Title
塊。
關於語法應該在這里有什么想法嗎? 我在查找有關與to_tsvector
一起使用更多列的任何相關文檔時遇到麻煩。
您的索引非常好,只要在查詢中使用相同的表達式,就會使用該索引。
索引表達式不存儲為文本,而是存儲為已解析的樹結構。 這樣,如果您例如重命名已使用的列,它不會破壞索引。
字符串串聯運算符||
保持關聯,因此帶括號的表達式與您最初編寫的表達式相同(除了使表達式IMMUTABLE
所需的配置english
IMMUTABLE
,我想您只是忘記了這一點)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.