<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-167  評論-65  文章-0  trackbacks-0
    環境: sphinx 0.9.8 rc2 + libmmseg 0.7.3 + thinking_sphinx 1.2.8 + ubuntu 8.1.0 Desktop version

    效果預覽:
    1, http://www.zikii.com/ 這個網站 也是基于 sphinx 實現的
    2,我的



    由于項目需要,需要實現站內搜索,全文檢索和 中文分詞 功能,最后選型了 sphinx + libmmseg + thinking_sphinx , 折騰了好大一會,最后測試成功
    sphinx 是俄國人開發的opensourse 搜索引擎,索引速度很快, libmmseg 是中國人開發的中文分詞程序,thinking_sphinx 是封裝調用sphinx的rails plugin

    下面用到的所有資源 打包下載:
    http://www.uushare.com/user/fl1429/file/2043579

    1,項目的所有的源碼編譯安裝 , 全部移到 /root 下進行,凡是出現權限不夠的, 在命令前加上 sudo

    2,安裝 libmmseg

    ./configure
    make
    make install
    具體可以參考:
    http://www.coreseek.cn/opensource/mmseg/

    3,安裝 ruby 擴展,進入 mmseg ruby 目錄下 (注意最后面有一個點)

    cd ruby
    cp /usr/local/include/mmseg/*.h .
    cp ../src/*.h .   

    cp ../src/css/*.h .
    ruby extconf.lin.rb
    make
    sudo make install
    成功的話,可以到irb下,測試看看是否成功了
    irb 
    require 'mmseg'
    注意:如果在這一步出錯,且出錯提示為:

    css/UnigramCorpusReader.cpp:89: error: ’strncmp’ was not declared in this scope

    則需手工編輯.src/css目錄下UnigramCorpusReader.cpp 文件,在其第一行加上

    #include <string.h>

    然后重新 make,即可通過

    4,創建辭典文件

    進入 mmseg 的 data 目錄下

    mmseg -u unigram.txt

    把生成的文件名改為 uni.lib

    5,安裝sphinx (把兩個補丁放入 解壓后 的 sphinx下)

    cd sphinx-0.9.8-rc2

    patch -p1 < sphinx-0.98rc2.zhcn-support.patch #patch中文補丁

    patch -p1 < fix-crash-in-excerpts.patch # patch 防crash 補丁

    Copy mmseg安裝文件夾下 src/csr_typedefs.h 和

    src/css/SegmenterManager.h 到Sphinx安裝文件夾下的 src

    文件夾下

    ./configure

    make
    sudo make install

    注意:如果在這一步出現

    /usr/local/include/mmseg/freelist.h:22: error: ‘strlen’ was not declared in this scope

    的錯誤,手工修改 /usr/local/mmseg/include/mmseg/freelist.h

    在上面添加
    #include <string.h>

    以上的配置 sphinx 就支持 中文分詞 搜索了。。。

    Demo:

    1,依照 Ryan 的例子 配置 好基本的英文搜索

    http://railscasts.com/episodes/120-thinking-sphinx

    2,重點是 model 里的 定義索引

    define_index do

    indexes content
    indexes :name, :sortable => true
    indexes comments.content, :as => :comment_content
    indexes [author.first_name, author.last_name], :as => :author_name
    has author_id, created_at
    end

    3,把上面生成的 uni.lib 辭典文件 拷入 項目的 lib 下 (或者別的地方,看你配置里的charset_dictpath的,不編譯的話,可以用別人現成的uni.lib)

    4,在項目的 config 下新建一個 sphinx.yml 文件
    development: &my_settings
    enable_star: 1
    min_prefix_len: 0
    min_infix_len: 2
    min_word_len: 1
    max_results: 70000
    morphology: none
    listen: localhost:3312
    charset_dictpath: /home/feng/RailsProject/Search/lib
    test:
    <<: *my_settings
    production:
    <<: *my_settings

    上面的
    /home/feng/RailsProject/Search/lib 可以寫成 "#{RAILS_ROOT}/lib"
    5,生成配置文件

    rake ts:config

     這樣config 下會生成一個 development.sphinx.conf 文件

    找到 charset_type = utf-8 把后面 utf-8 修改為 zh_cn.utf-8,并在下面添加如下語句

    charset_dictpath = /home/feng/RailsProject/Search/lib (你工程的lib路徑)

    6,建立索引

    rake ts:index INDEX_ONLY=true
    注意后面必須添加 INDEX_ONLY=true不然的話,配置文件會被重置,還有不要寫成 INDEX_ONLY = true


    7,啟動sphinx服務

    rake ts:start
    8,啟動webrick

    注意,sphinx 必須在webrick的前面 先啟動
    我的demo項目,其實就是上面ryan 的,下載后可以看到我的具體配置,或者詳細的內容

    http://www.uushare.com/user/fl1429/file/2043752


    ref:
    http://wiki.github.com/cogentsoft/zbs/180787
    http://www.javaeye.com/topic/431217?page=1
    http://www.javaeye.com/topic/196451
    http://blog.sina.com.cn/s/blog_412d58ec010090pq.html
    http://freelancing-god.github.com/ts/en/rake_tasks.html


    write by feng
    posted on 2009-09-22 17:15 fl1429 閱讀(1732) 評論(0)  編輯  收藏 所屬分類: Rails
    已訪問數:
    free counters
    主站蜘蛛池模板: 久久精品成人免费国产片小草 | 国产卡二卡三卡四卡免费网址 | 国产成人精品日本亚洲专区| 国产一卡二卡四卡免费| 国产一级a毛一级a看免费视频| 国产L精品国产亚洲区久久| 免费无码AV片在线观看软件| 免费在线看污视频| 免费毛片毛片网址| 亚洲国产精品无码观看久久| 亚洲国产美女视频| 久久久久亚洲AV成人无码 | 中文字幕无线码中文字幕免费 | 在线观看国产情趣免费视频| 日本免费一区二区在线观看| 国产真人无码作爱免费视频| 污污视频免费观看网站| 亚洲欧美日韩中文字幕在线一区| 亚洲视频欧洲视频| 亚洲AV成人精品网站在线播放| 亚洲欧洲日产国码无码久久99| 亚洲国产精品13p| 国产成人综合久久精品免费| 成人最新午夜免费视频| 大地资源二在线观看免费高清| 99久久免费国产香蕉麻豆| 69av免费视频| 国产福利视精品永久免费| 1000部夫妻午夜免费| 亚洲最大免费视频网| **真实毛片免费观看| 成人免费在线看片| 一本无码人妻在中文字幕免费 | 亚洲最大无码中文字幕| 亚洲娇小性色xxxx| 波多野结衣亚洲一级| 亚洲乱码中文字幕在线| 亚洲a∨国产av综合av下载| 精品亚洲av无码一区二区柚蜜| 狠狠入ady亚洲精品| 色吊丝性永久免费看码 |