<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • postgresql正則的簡(jiǎn)單介紹

            請(qǐng)問一下PostgreSQL什么意思 請(qǐng)?jiān)斒?謝謝

            首先知道substring函數(shù)在PostgreSQL中的作用。在這段SQ語句中,substring是使用的substring(txt from reg)的形式,其中, txt是要進(jìn)行正則匹配的源字符串,reg是匹配的正則表達(dá)式。如此,我們大概可以知道:這段代碼的then其實(shí)就是用information進(jìn)行一些正則表達(dá)式的匹配,然后獲取匹配后的那段字符串。

            在鳳山等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需規(guī)劃網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),全網(wǎng)營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè),鳳山網(wǎng)站建設(shè)費(fèi)用合理。

            這段代碼中一共有3個(gè)substring函數(shù)調(diào)用,而執(zhí)行的順序則與它們出現(xiàn)的順序相反,首先執(zhí)行的是:

            substring(information?from?E':step_1:?\\*([0?-9]+)'?)

            它獲得匹配step_1: *后面所跟的數(shù)字;假設(shè)information為:step_1: *1234a, 那么獲得的就是1234;

            接下來為第二substring, 它是用information來匹配上面獲得的數(shù)字嵌入":"和".*:step_1:"的那段內(nèi)容;

            而最后一個(gè)substring,則是匹配第二個(gè)獲得的字串,其中前為“l(fā)oan_purpose: ”接下來為非換行符號(hào)的那部分字串(即獲得以“l(fā)oan_purpose: ”開始的所有非換行字符,遇到換行符就終止,不包括"loan_purpose: ")。

            一個(gè)例子:

            select?substring(?substring(?information?FROM':?'?||??substring(information?from?E':step_1:?

            \\*([0-9]+)'

            )?||'.*:step_1:')?

            from?E'loan_purpose:?([^\n]+)')

            from?(select?'start?here:?1234loan_purpose:?Hello?World:step_1:?*1234end'::character?varying?as?information)

            s

            運(yùn)行結(jié)果如圖,

            PostgreSQL全文檢索簡(jiǎn)介

            PostgreSQL自帶有一個(gè)簡(jiǎn)易的全文檢索引擎,可以實(shí)現(xiàn)小規(guī)模數(shù)據(jù)量的全文檢索功能。本文我們將引導(dǎo)介紹一下這個(gè)功能,對(duì)于小數(shù)據(jù)量的搜索這個(gè)功能是足夠使用的,而無需搭建額外的ES等重量級(jí)的全文檢索服務(wù)器。

            PG的全文檢索操作符是 @@ ,當(dāng)一個(gè) tsvector (文檔)和 tsquery (條件)匹配時(shí)返回 true ,并且前后順序無影響:

            和普通的SQL查詢一樣,只要在 WHERE 條件中使用這個(gè)符號(hào)就代表使用全文檢索條件篩選文檔了。如:

            @@ 操作符支持隱式轉(zhuǎn)換,對(duì)于 text 類型可以無需強(qiáng)類型轉(zhuǎn)換( ::tsvector 或 to_tsvector(config_name, text) ),所以這個(gè)操作符實(shí)際支持的參數(shù)類型是這樣的:

            tsquery 查詢條件并不是簡(jiǎn)單的正則,而是一組搜索術(shù)語,使用并且使用布爾操作符 (AND)、 | (OR)和 ! (NOT)來組合它們,還有短語搜索操作符 - (FOLLOWED BY)。更詳細(xì)的語法參見 此文檔 。

            此外,PostgreSQL還提供了兩個(gè)相對(duì)簡(jiǎn)化的版本 plainto_tsquery 和 phraseto_tsquery 。

            plainto_tsquery ( plainto_tsquery([ config regconfig, ] querytext text) returns tsquery )用戶將未格式化的 text 經(jīng)過分詞之后,插入 符號(hào)轉(zhuǎn)為 tsquery :

            phraseto_tsquery ( phraseto_tsquery([ config regconfig, ] querytext text) returns tsquery )行為和 plainto_tsquery 行為類似,但是分詞之后不是插入 而是 - (FOLLOWED BY):

            使用索引可以加快全文檢索的速度。對(duì)于全文檢索來說,可選的索引類型是 GIN (通用倒排索引)和 GIST (通用搜索樹),官方文檔更推薦使用 GIN索引 。創(chuàng)建一個(gè) GIN 索引的范例:

            也可以是一個(gè)連接列:

            還可以單獨(dú)創(chuàng)建一個(gè) tsvector 列,為這個(gè)列創(chuàng)建索引:

            除了普通的 ORDER BY 條件之外,PostgreSQL為全文檢索提供了兩個(gè)可選的排序函數(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)重 的排序。

            此外,對(duì)于PostgreSQL 9.6以上的版本還可以使用 RUM index 排序。(注意,這個(gè)是擴(kuò)展,默認(rèn)不包含)。

            PostgreSQL默認(rèn)的分詞字典中并不包含中文分詞字典,因此我們必須手工引入。目前一個(gè)比較好的項(xiàng)目是 zhparser ,同時(shí)這個(gè)插件也是阿里云的RDS默認(rèn)包含的。安裝和啟用沒什么好說的。值得一提的是分詞配置參數(shù)。

            在 CREATE EXTENSION 之后,必須配置分詞參數(shù)才能正確進(jìn)行分詞和查找,否則什么都查不到。官方文檔提供的一個(gè)配置策略是:

            n,v,a,i,e,l 這幾個(gè)字母分別表示一種token策略,只啟用了這幾種token mapping,其余則被屏蔽。具體支持的參數(shù)和含義可以用 \dFp+ zhparser 顯示:

            WITH simple 表示詞典使用的是內(nèi)置的simple詞典,即僅做小寫轉(zhuǎn)換。根據(jù)需要可以靈活定義詞典和token映射,以實(shí)現(xiàn)屏蔽詞和同義詞歸并等功能。

            比如我們看下面這個(gè)例子:

            可以看到 江淮 這個(gè)詞組在查詢的時(shí)候被忽略了,我們啟用 j (abbreviation,簡(jiǎn)稱)再看看結(jié)果:

            所以實(shí)際使用中要設(shè)置合理的token types,過少將導(dǎo)致搜索結(jié)果不準(zhǔn)確,過多將導(dǎo)致性能下降。此外,還有一些諸如 短詞復(fù)合: zhparser.multi_short = f 這一類的控制分詞結(jié)果的選項(xiàng),根據(jù)實(shí)際使用酌情開啟。

            postgresql怎么匹配正則表達(dá)式

            在postgresql中使用正則表達(dá)式時(shí)需要使用關(guān)鍵字“~”,以表示該關(guān)鍵字之前的內(nèi)容需匹配之后的正則表達(dá)式,若匹配規(guī)則不需要區(qū)分大小寫,可以使用組合關(guān)鍵字“~*”;

            相反,若需要查詢不匹配這則表達(dá)式的記錄,只需在該關(guān)鍵字前加否定關(guān)鍵字“!”即可。若正則表達(dá)式包含轉(zhuǎn)義字符,則需在表達(dá)式前加關(guān)鍵字“E”。

            本文題目:postgresql正則的簡(jiǎn)單介紹
            標(biāo)題來源:http://www.jbt999.com/article40/dsdjeho.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、App設(shè)計(jì)外貿(mào)建站、定制網(wǎng)站、網(wǎng)站改版企業(yè)網(wǎng)站制作

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

            成都做網(wǎng)站

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 国产精品久久久久久久久久久久久久 | 三级天天干| 天天澡天天爽爽 | 精品无码三级在线播放 | 囯产精品内射免费观看 |