PostgreSQL自帶有一個簡易的全文檢索引擎,可以實(shí)現(xiàn)小規(guī)模數(shù)據(jù)量的全文檢索功能。本文我們將引導(dǎo)介紹一下這個功能,對于小數(shù)據(jù)量的搜索這個功能是足夠使用的,而無需搭建額外的ES等重量級的全文檢索服務(wù)器。
專注于為中小企業(yè)提供網(wǎng)站制作、網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)祥符免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了超過千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
PG的全文檢索操作符是 @@ ,當(dāng)一個 tsvector (文檔)和 tsquery (條件)匹配時返回 true ,并且前后順序無影響:
和普通的SQL查詢一樣,只要在 WHERE 條件中使用這個符號就代表使用全文檢索條件篩選文檔了。如:
@@ 操作符支持隱式轉(zhuǎn)換,對于 text 類型可以無需強(qiáng)類型轉(zhuǎn)換( ::tsvector 或 to_tsvector(config_name, text) ),所以這個操作符實(shí)際支持的參數(shù)類型是這樣的:
tsquery 查詢條件并不是簡單的正則,而是一組搜索術(shù)語,使用并且使用布爾操作符 (AND)、 | (OR)和 ! (NOT)來組合它們,還有短語搜索操作符 - (FOLLOWED BY)。更詳細(xì)的語法參見 此文檔 。
此外,PostgreSQL還提供了兩個相對簡化的版本 plainto_tsquery 和 phraseto_tsquery 。
plainto_tsquery ( plainto_tsquery([ config regconfig, ] querytext text) returns tsquery )用戶將未格式化的 text 經(jīng)過分詞之后,插入 符號轉(zhuǎn)為 tsquery :
phraseto_tsquery ( phraseto_tsquery([ config regconfig, ] querytext text) returns tsquery )行為和 plainto_tsquery 行為類似,但是分詞之后不是插入 而是 - (FOLLOWED BY):
使用索引可以加快全文檢索的速度。對于全文檢索來說,可選的索引類型是 GIN (通用倒排索引)和 GIST (通用搜索樹),官方文檔更推薦使用 GIN索引 。創(chuàng)建一個 GIN 索引的范例:
也可以是一個連接列:
還可以單獨(dú)創(chuàng)建一個 tsvector 列,為這個列創(chuàng)建索引:
除了普通的 ORDER BY 條件之外,PostgreSQL為全文檢索提供了兩個可選的排序函數(shù) ts_rank([ weights float4[], ] vector tsvector, query tsquery [, normalization integer ]) returns float4 和 ts_rank_cd([ weights float4[], ] vector tsvector, query tsquery [, normalization integer ]) returns float4 ,以便實(shí)現(xiàn)基于 權(quán)重 的排序。
此外,對于PostgreSQL 9.6以上的版本還可以使用 RUM index 排序。(注意,這個是擴(kuò)展,默認(rèn)不包含)。
PostgreSQL默認(rèn)的分詞字典中并不包含中文分詞字典,因此我們必須手工引入。目前一個比較好的項(xiàng)目是 zhparser ,同時這個插件也是阿里云的RDS默認(rèn)包含的。安裝和啟用沒什么好說的。值得一提的是分詞配置參數(shù)。
在 CREATE EXTENSION 之后,必須配置分詞參數(shù)才能正確進(jìn)行分詞和查找,否則什么都查不到。官方文檔提供的一個配置策略是:
n,v,a,i,e,l 這幾個字母分別表示一種token策略,只啟用了這幾種token mapping,其余則被屏蔽。具體支持的參數(shù)和含義可以用 \dFp+ zhparser 顯示:
WITH simple 表示詞典使用的是內(nèi)置的simple詞典,即僅做小寫轉(zhuǎn)換。根據(jù)需要可以靈活定義詞典和token映射,以實(shí)現(xiàn)屏蔽詞和同義詞歸并等功能。
比如我們看下面這個例子:
可以看到 江淮 這個詞組在查詢的時候被忽略了,我們啟用 j (abbreviation,簡稱)再看看結(jié)果:
所以實(shí)際使用中要設(shè)置合理的token types,過少將導(dǎo)致搜索結(jié)果不準(zhǔn)確,過多將導(dǎo)致性能下降。此外,還有一些諸如 短詞復(fù)合: zhparser.multi_short = f 這一類的控制分詞結(jié)果的選項(xiàng),根據(jù)實(shí)際使用酌情開啟。
給樓主提供幾個網(wǎng)址 有教程的 (基礎(chǔ)的)
1 PostgreSQL 7.3 教程
這個不用下載 可以直接看
2 PostgreSQL 實(shí)用實(shí)例參考(PDF)
3 PostgreSQL v8.0 中文文檔(HTML)
一、安裝準(zhǔn)備1.安裝介紹可瀏覽PostgreSQL在Windows
平臺下的下載頁面,了解各種下載和安裝PostgreSQL的方法。
在Windows上安裝PostgreSQL最簡單的方法是從前面的下載頁面下載由EnterpriseDB公司維護(hù)的一鍵安裝程序,這個安裝程序?qū)⒃赪indows上安裝一個已編譯好的PostgreSQL數(shù)據(jù)庫軟件、一個圖形界面的管理程序pgAdmin、可選擇的有附加功能的增值模塊和過程語言。另外一個名叫StackBuilder的軟件也會安裝上,它可以幫助你下載或安裝附加模塊,如ODBC或JDBC驅(qū)動
2.安裝環(huán)境Win7旗艦版64位
postgresql-9.2.4-1-windows-x64.exe
二、安裝過程1.
開始安裝2.
選擇安裝目錄3.
選擇數(shù)據(jù)存放目錄
4.選擇數(shù)據(jù)存放目錄
該目錄在以后的使用過程中可以修改調(diào)整。5.
輸入超級用戶口令6.
監(jiān)聽端口號設(shè)置
默認(rèn)即可,以后使用中可以通過修改postgresql.conf進(jìn)行調(diào)整。7.
高級選項(xiàng)-語言環(huán)境設(shè)置選擇Default locale
即可,中文簡體
新加坡(Chinese[Simplified],
Singapore)未做嘗試,據(jù)說會導(dǎo)致查詢結(jié)果和排序效果不正確。8.
安裝進(jìn)度9.
安裝結(jié)束之后可以利用
Stack Builder工具安裝PostgreSql相關(guān)插件、驅(qū)動或工具。
選擇遠(yuǎn)程服務(wù)器
進(jìn)行軟件下載及安裝。
至此,完整軟件包的安裝結(jié)束。
打開軟件,進(jìn)入界面中。
雙擊“PostgresSQL 9.3”連接服務(wù)器
方法一:右鍵單擊“postgres”,選擇“新建對象”--新建數(shù)據(jù)庫,設(shè)置新的數(shù)據(jù)庫的參數(shù),所有者一般默認(rèn)為“postgres”
新建完后,不能立即看到界面上更新的數(shù)據(jù),需要點(diǎn)擊界面上的更新按鈕才能夠看到數(shù)據(jù)庫的變化情況。
方法二:在插件中輸入SQL語言,運(yùn)行命令
方法三:點(diǎn)擊面板上的“執(zhí)行任意的SQL查詢”
PostgreSQL 是一種非常復(fù)雜的對象-關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS), 也是目前功能最強(qiáng)大,特性最豐富和最復(fù)雜的自由軟件數(shù)據(jù)庫系統(tǒng)。有些特性甚至連商業(yè)數(shù)據(jù)庫都不具備。這個起源于伯克利(BSD)的數(shù)據(jù)庫研究計(jì)劃目前已經(jīng)衍生成一項(xiàng)國際開發(fā)項(xiàng)目, 并且有非常廣泛的用戶。 PostgreSQL 可以說是最富特色的自由數(shù)據(jù)庫管理系統(tǒng),甚至我們也可以說是最強(qiáng)大的自由軟件數(shù)據(jù)庫管理系統(tǒng)。事實(shí)上, PostgreSQL 的特性覆蓋了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以說是目前世界上最豐富的數(shù)據(jù)類型的支持,其中有些數(shù)據(jù)類型可以說連商業(yè)數(shù)據(jù)庫都不具備, 比如 IP 類型和幾何類型等;其次,PostgreSQL 是全功能的自由軟件數(shù)據(jù)庫,很長時間以來,PostgreSQL 是唯一支持事務(wù)、子查詢、多版本并行控制系統(tǒng)、數(shù)據(jù)完整性檢查等特性的唯一的一種自由軟件的數(shù)據(jù)庫管理系統(tǒng)。直到最近才有 Inprise 的 InterBase 以及 SAP 等廠商將其原先專有軟件開放為自由軟件之后才打破了這個唯一。 給樓主提供幾個網(wǎng)址 有教程的 (基礎(chǔ)的) 1 PostgreSQL 7.3 教程 這個不用下載 可以直接看 2 PostgreSQL 實(shí)用實(shí)例參考(PDF) 3 PostgreSQL v8.0 中文文檔(HTML)
分享題目:postgresql中文手冊的簡單介紹
轉(zhuǎn)載源于:http://m.rwnh.cn/article36/dscoopg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、品牌網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、云服務(wù)器、商城網(wǎng)站、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)