国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Sphinx 單詞+數字索引

jasperyang / 2214人閱讀

摘要:總結兩種方式都能起作用,中綴索引比較簡單,但會大幅度增加索引文件的大小和索引的速度安裝正則引擎比較煩,而且要重新編譯安裝但對索引文件的大小和索引速度的影響較小。

導讀

Sphinx 是一個非常強大的全文搜索引擎,能處理各種復雜的索引請求.但有時候需要一些特殊的設置.

問題

比如文檔中有一種詞,該詞包含了字母和數字,比如(onepiece123) 如果一般情況下直接搜索onepiece或者123的時候,你是得不到這個文檔的.

原因

sphinx在處理單詞時,把整個詞看作一個整體,用關鍵詞搜索的時候也是,比如,搜索詞如果是onepiece,那么得到的文檔只能是包含了onepiece這個詞段(如onepiece 123)的才能被索引到,否則除非直接搜索onepiece123,你是得不到文檔onepiece123的.

解決方式

這種時候有兩種方式可以解決:

中綴索引

設置中綴索引長度,中綴索引可以讓我們進行通配符搜索文檔的操作,比如word, word*, *word

min_infix_len

中綴索引長度默認為0,即不做中綴索引,假如設置成一個合適的長度,那么就能根據單詞的某一部分查找到對應的文檔,比如把min_infix_len 設置為2, 那么文檔中包含test的詞匯就會被分成 te, es, st tes, est,test這幾種(最小長度2),當我們用關鍵字es 去搜索的時候,就能命中這個包含test的文檔,當然,這也導致了我們的索引文件大小大幅度增加,索引速度降低的問題

為了解決開始的時候我們提到的這種單詞帶數字的查找,我們可以設置一個比較合適的中綴索引長度,比如8,那么包含onepiece123這個詞的文檔會被分成onepiece, onepiece1, onepiece12, onepiece123, nepiece12,...等等(按順序包含至少8個原有字符,不能跳過任意的字母),這樣,當我們搜索oinepiece的時候, 因為原有的oinepiece123文檔被分成了包含了onepiece等多個的文檔,我們就能命中這個oinepiece123所在的文檔了.

設置regexp_filter

該設置允許我們通過正則的方式映射最終的文檔格式.那樣的話我們就能統一一些常見的單詞或者短語的格式了.
比如

"iphone 3gs" , "iphone 3 gs" (或者甚是 "iphone3 gs")

當我們在搜索這些關鍵詞的時候,我們都希望能命中包含iphone3gs這個文檔,我們可以像這樣設置索引:
  

regexp_filter = [(iphone 3gs)| (iphone 3 gs) | (iphone3 gs)] => iphone3gs

  這樣在創建索引的時候, 所有包含上面三種的iphone 3gs的格式都能映射成iphone3gs, 在搜索iphone3gs的時候, 就能命中所有包含上面三種詞的文檔了

  回歸我們的初始問題,這種方式處理單詞+數字的索引設置可以這么設置

regexp_filter = ([a-z|A-Z]+)(d+) =>1 2

  "1"和"2"之間有空格,"1"對應單詞的正則匹配, "2"對應數字的正則匹配,中間加了一個空格,這就表示在創建索引的時候單詞+數字的文檔會被分開.
  不過要說明的是,如果想使用這個配置,需要安裝一個名叫re2的正則引擎替代系統內置的正則引擎,安裝好后重新編譯安裝sphinx的源碼,在./configure的時候帶上參數 
--with-re2,然后regexp_filter才會游泳

  這樣也能解決單詞+數字的搜索問題。

總結

  兩種方式都能起作用,中綴索引比較簡單,但會大幅度增加索引文件的大小和索引的速度.regexp_filter安裝正則引擎比較煩,而且要重新編譯安裝sphinx, 但對索引文件的大小和索引速度的影響較小。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/20948.html

相關文章

  • 使用sphinx search打造你自己的中文搜索引

    摘要:本文以為例來介紹如何打造自己的搜索引擎。其官方網站是可以說支持包括英文中文等所有語言的搜索。默認把中文按字拆分的,但這樣就會產生搜索出不相干的內容來。因此,有人就給打了中文分詞的補丁。 Google搜索引擎建立至今已經快20年了,之后全球各類大大小小類似的搜索引擎也陸續出現、消亡。國內目前以百度為大,搜狗、360、必應等也勢在必爭。搜索引擎技術也發展的相當成熟,同時也就出現了很多開源的...

    trigkit4 評論0 收藏0
  • Centos 編譯安裝sphinx-0.9.9全文檢索

    摘要:簡介是開源的搜索引擎,它支持英文的全文檢索。但是往往我們要求的是中文索引,怎么做呢國人提供了一個可供企業使用的,基于的中文全文檢索引擎。 Sphinx 簡介 Sphinx是開源的搜索引擎,它支持英文的全文檢索。所以如果單獨搭建Sphinx,你就已經可以使用全文索引了。但是往往我們要求的是中文索引,怎么做呢?國人提供了一個可供企業使用的,基于Sphinx的中文全文檢索引擎。也就是說Cor...

    LeoHsiun 評論0 收藏0
  • Centos 編譯安裝sphinx-0.9.9全文檢索

    摘要:簡介是開源的搜索引擎,它支持英文的全文檢索。但是往往我們要求的是中文索引,怎么做呢國人提供了一個可供企業使用的,基于的中文全文檢索引擎。 Sphinx 簡介 Sphinx是開源的搜索引擎,它支持英文的全文檢索。所以如果單獨搭建Sphinx,你就已經可以使用全文索引了。但是往往我們要求的是中文索引,怎么做呢?國人提供了一個可供企業使用的,基于Sphinx的中文全文檢索引擎。也就是說Cor...

    馬龍駒 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<