簡體   English   中英

Postgres-使用3個以上帶有to_tsvector的列創建全文搜索索引

[英]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")

似乎還有一組額外的括號包圍着CompanyNameTitle塊。

關於語法應該在這里有什么想法嗎? 我在查找有關與to_tsvector一起使用更多列的任何相關文檔時遇到麻煩。

您的索引非常好,只要在查詢中使用相同的表達式,就會使用該索引。

索引表達式不存儲為文本,而是存儲為已解析的樹結構。 這樣,如果您例如重命名已使用的列,它不會破壞索引。

字符串串聯運算符|| 保持關聯,因此帶括號的表達式與您最初編寫的表達式相同(除了使表達式IMMUTABLE所需的配置english IMMUTABLE ,我想您只是忘記了這一點)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM