盡管PostgreSQL中支持大量的數(shù)據(jù)類型,但是對于URL似乎并沒有一個相應(yīng)的類型能夠去存儲。那么對于URL的數(shù)據(jù)我們在數(shù)據(jù)庫中要怎么去處理呢?
首先還是需要看你要存儲的URL數(shù)據(jù)是用來干嘛的,如果僅僅只是為了在以后查詢的時候打印輸出,那么用varchar或者text之類的類型不是就可以了嗎?
但是有的時候我們對于這些URL數(shù)據(jù)并不僅僅是簡單的查詢,我們可能希望通過這些URL能夠查詢一些額外的信息,例如URL的使用的協(xié)議、主機名等等。這里我們便可以使用ts_debug函數(shù)來進行解析了。
函數(shù)ts_debug允許簡單地測試一個文本搜索配置。
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為解析器在文本中標識的每一個記號返回一行。被返回的列是:
- alias text : 記號類型的短名稱
- description text :記號類型的描述
- token text : 記號的文本
- dictionaries regdictionary[] : 配置為這種記號類型選擇的詞典
- dictionary regdictionary : 識別該記號的詞典,如果沒有詞典能識別則為NULL
- lexemes text[] :
- 識別該記號的詞典產(chǎn)生的詞位,如果沒有詞典能識別則為NULL;一個空數(shù)組({})表示該記號被識別為一個停用詞
因此我們便可以通過下面的方式來對URL進行解析:
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- PostgreSQL 數(shù)據(jù)庫跨版本升級常用方案解析
- 解析PostgreSQL中Oid和Relfilenode的映射問題
- 基于Postgresql 事務(wù)的提交與回滾解析
- PostgreSQL物化視圖(materialized view)過程解析
- sql腳本函數(shù)編寫postgresql數(shù)據(jù)庫實現(xiàn)解析