簡單介紹PostgreSQL解析URL的方法

大雄45發表於2022-12-10
導讀 儘管PostgreSQL中支援大量的資料型別,但是對於URL似乎並沒有一個相應的型別能夠去儲存。那麼對於URL的資料我們在資料庫中要怎麼去處理呢?今天透過本文給大家介紹下,需要的朋友參考下吧

儘管PostgreSQL中支援大量的資料型別,但是對於URL似乎並沒有一個相應的型別能夠去儲存。那麼對於URL的資料我們在資料庫中要怎麼去處理呢?

首先還是需要看你要儲存的URL資料是用來幹嘛的,如果僅僅只是為了在以後查詢的時候列印輸出,那麼用varchar或者text之類的型別不是就可以了嗎?

但是有的時候我們對於這些URL資料並不僅僅是簡單的查詢,我們可能希望透過這些URL能夠查詢一些額外的資訊,例如URL的使用的協議、主機名等等。這裡我們便可以使用ts_debug函式來進行解析了。

函式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[] :

識別該記號的詞典產生的詞位,如果沒有詞典能識別則為NULL;一個空陣列({})表示該記號被識別為一個停用詞

因此我們便可以透過下面的方式來對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)

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2852036/,如需轉載,請註明出處,否則將追究法律責任。

相關文章