PostgreSQL解析URL的方法
盡管PostgreSQL中支持大量的數(shù)據(jù)類型,但是對(duì)于URL似乎并沒有一個(gè)相應(yīng)的類型能夠去存儲(chǔ)。那么對(duì)于URL的數(shù)據(jù)我們?cè)跀?shù)據(jù)庫中要怎么去處理呢?
首先還是需要看你要存儲(chǔ)的URL數(shù)據(jù)是用來干嘛的,如果僅僅只是為了在以后查詢的時(shí)候打印輸出,那么用varchar或者text之類的類型不是就可以了嗎?
但是有的時(shí)候我們對(duì)于這些URL數(shù)據(jù)并不僅僅是簡(jiǎn)單的查詢,我們可能希望通過這些URL能夠查詢一些額外的信息,例如URL的使用的協(xié)議、主機(jī)名等等。這里我們便可以使用ts_debug函數(shù)來進(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)的詞典,如果沒有詞典能識(shí)別則為NULL
- lexemes text[] :
- 識(shí)別該記號(hào)的詞典產(chǎn)生的詞位,如果沒有詞典能識(shí)別則為NULL;一個(gè)空數(shù)組({})表示該記號(hào)被識(shí)別為一個(gè)停用詞
因此我們便可以通過下面的方式來對(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)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Postgres copy命令導(dǎo)入導(dǎo)出數(shù)據(jù)的操作方法
最近有需要對(duì)數(shù)據(jù)進(jìn)行遷移的需求,由于postgres性能的關(guān)系,單表3000W的數(shù)據(jù)量查詢起來有一些慢,需要對(duì)大表進(jìn)行切割,拆成若干個(gè)子表,涉及到原有數(shù)據(jù)要遷移到子表的需求,這篇文章主要介紹了Postgres copy命令導(dǎo)入導(dǎo)出數(shù)據(jù)的操作方法,需要的朋友可以參考下2024-08-08解決postgresql表中的字段名稱包含特殊符號(hào)的問題
這篇文章主要介紹了解決postgresql表中的字段名稱包含特殊符號(hào)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01關(guān)于PostgreSQL截取某個(gè)字段中的部分內(nèi)容進(jìn)行排序的問題
這篇文章主要介紹了PostgreSQL截取某個(gè)字段中的部分內(nèi)容進(jìn)行排序,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06Windows?系統(tǒng)?PostgreSQL?手工安裝配置方法
這篇文章主要介紹了Windows?系統(tǒng)?PostgreSQL?手工安裝配置方法,本文主要說一下在?Windows?系統(tǒng)中安裝?PostgreSQL?的方法,我這里沒有采用?exe?安裝包的形式去安裝,EDB?發(fā)布的那個(gè)?exe?安裝包形式的對(duì)于中文環(huán)境數(shù)據(jù)庫的排序規(guī)則設(shè)定有問題,需要的朋友可以參考下2022-09-09postgres 實(shí)現(xiàn)查詢某條數(shù)據(jù)的排名
這篇文章主要介紹了postgres 實(shí)現(xiàn)查詢某條數(shù)據(jù)的排名,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12postgresql 存儲(chǔ)函數(shù)調(diào)用變量的3種方法小結(jié)
這篇文章主要介紹了postgresql 存儲(chǔ)函數(shù)調(diào)用變量的3種方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01PostgreSQL 如何獲取當(dāng)前日期時(shí)間及注意事項(xiàng)
這篇文章主要介紹了PostgreSQL 如何獲取當(dāng)前日期時(shí)間及注意事項(xiàng),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10