PostgreSQL解析URL的方法
盡管PostgreSQL中支持大量的數(shù)據(jù)類型,但是對(duì)于URL似乎并沒(méi)有一個(gè)相應(yīng)的類型能夠去存儲(chǔ)。那么對(duì)于URL的數(shù)據(jù)我們?cè)跀?shù)據(jù)庫(kù)中要怎么去處理呢?
首先還是需要看你要存儲(chǔ)的URL數(shù)據(jù)是用來(lái)干嘛的,如果僅僅只是為了在以后查詢的時(shí)候打印輸出,那么用varchar或者text之類的類型不是就可以了嗎?
但是有的時(shí)候我們對(duì)于這些URL數(shù)據(jù)并不僅僅是簡(jiǎn)單的查詢,我們可能希望通過(guò)這些URL能夠查詢一些額外的信息,例如URL的使用的協(xié)議、主機(jī)名等等。這里我們便可以使用ts_debug函數(shù)來(lái)進(jìn)行解析了。
函數(shù)ts_debug允許簡(jiǎn)單地測(cè)試一個(gè)文本搜索配置。
ts_debug([ config regconfig, ] document text,
OUT alias text,
OUT description text,
OUT token text,
OUT dictionaries regdictionary[],
OUT dictionary regdictionary,
OUT lexemes text[])
returns setof record
ts_debug為解析器在文本中標(biāo)識(shí)的每一個(gè)記號(hào)返回一行。被返回的列是:
- alias text : 記號(hào)類型的短名稱
- description text :記號(hào)類型的描述
- token text : 記號(hào)的文本
- dictionaries regdictionary[] : 配置為這種記號(hào)類型選擇的詞典
- dictionary regdictionary : 識(shí)別該記號(hào)的詞典,如果沒(méi)有詞典能識(shí)別則為NULL
- lexemes text[] :
- 識(shí)別該記號(hào)的詞典產(chǎn)生的詞位,如果沒(méi)有詞典能識(shí)別則為NULL;一個(gè)空數(shù)組({})表示該記號(hào)被識(shí)別為一個(gè)停用詞
因此我們便可以通過(guò)下面的方式來(lái)對(duì)URL進(jìn)行解析:
bill@bill=>SELECT
bill-# alias
bill-# ,description
bill-# ,token
bill-# FROM ts_debug('https://blog.csdn.net/weixin_39540651');
alias | description | token
----------+---------------+-------------------------------
protocol | Protocol head | https://
url | URL | blog.csdn.net/weixin_39540651
host | Host | blog.csdn.net
url_path | URL path | /weixin_39540651
(4 rows)
參考鏈接:
https://stackoverflow.com/questions/41633436/datatype-for-a-url-in-postgresql
http://www.postgres.cn/docs/13/textsearch-debugging.html#TEXTSEARCH-CONFIGURATION-TESTING
到此這篇關(guān)于PostgreSQL解析URL的方法的文章就介紹到這了,更多相關(guān)PostgreSQL解析URL內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信