<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 2. 全文檢索系統之進階 #### 1. 前言 這一篇文章簡要介紹了[PostgreSQL的全文檢索系統之基本介紹(一)](http://www.rails365.net/articles/2015-09-29-postgresql-de-quan-wen-jian-suo-xi-tong-zhi-ji-ben-jie-shao-yi),這一節來介紹一些額外的功能,比如排名,比如高亮等。 #### 2. 解析文檔(Parsing Documents) 要查看一段文本是怎么被PostgreSQL分詞的,可以用to\_tsvector這個指令,是這樣使用的。 ``` postgres=# SELECT to_tsvector('english', 'a fat cat sat on a mat - it ate a fat rats'); to_tsvector ----------------------------------------------------- 'ate':9 'cat':3 'fat':2,11 'mat':7 'rat':12 'sat':4 (1 row) ``` #### 3. 搜索結果排名(Ranking Search Results) 就是使用ts\_rank或ts\_rank\_cd按照匹配詞的出現次數做個排名。 例如: ``` rails365_pro=# select title, ts_rank(to_tsvector('english', body), to_tsquery('english', 'ruby')) AS rank from articles where to_tsvector('english', body) @@ to_tsquery('english', 'ruby') order by rank desc; title | rank -----------------------------------------------------+----------- 使用mina來部署ruby on rails應用 | 0.0928561 登錄認證系統的進階使用 | 0.0906656 devise簡單入門教程 | 0.0889769 用exception_notification結合Slack或數據庫來捕獲異常 | 0.0889769 Mina的進階使用 | 0.0865452 使用backup來備份數據庫 | 0.0827456 用logrotate切割Ruby on rails日志 | 0.0759909 用OneAPM作為你的監控平臺 | 0.0759909 ruby | 0.0607927 (9 rows) ``` #### 4. 結果的高亮(Highlighting Results) 有時候你需要把搜索的關鍵詞高亮起來,就像谷歌,百度那樣,PostgreSQL默認就支持的。 **PostgreSQL**有一個指令**ts\_headline**就是來做這個事情的。 **ts\_headline**使用起來也簡單,看下面的例子: ``` rails365_pro=# select title,ts_headline('testzhcfg', title, to_tsquery('testzhcfg', 'mina')), ts_rank(to_tsvector('testzhcfg', title), to_tsquery('testzhcfg', 'mina')) AS rank from articles where to_tsvector('testzhcfg', body) @@ to_tsquery('testzhcfg', 'mina') order by rank; title | ts_headline | rank ---------------------------------+--------------------------------------+----------- 使用mina來部署ruby on rails應用 | 使用<b>mina</b>來部署rubyonrails應用 | 0.0607927 Mina的進階使用 | <b>Mina</b>的進階使用 | 0.0607927 (2 rows) ``` 高亮的地方就用`<b></b>`包住了。 具體的內容可閱讀官方文檔[textsearch-controls](http://www.postgresql.org/docs/9.4/static/textsearch-controls.html) 完結。 下一篇[PostgreSQL 的全文檢索系統之中文支持 (三)](https://www.rails365.net/articles/postgresql-de-quan-wen-jian-suo-xi-tong-zhi-zhong-wen-zhi-chi-san)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看