`

thinking_sphinx在rails使用的简单描述

 
阅读更多

       thinking_sphinx在rails使用的简单描述

 写作目的:由于项目需要,需要在rails3中使用插件‘thinking_sphinx’,翻阅资料无数,没有最终我想要的结果,有的只是几年前的杰作,而且是抄来抄去,没有任何创新,也就是说过时了。痛定思痛我决定写一篇文章来做简单的介绍。

第一步:在Gemfile添加gem包如下:

 

           gem 'mysql2'  

           gem "riddle", "~> 1.5.0"

           gem "thinking-sphinx", "~> 2.0.10"

 

当然bundle install 是少不了的。source 我改成了 'http://ruby.taobao.org',速度比较快。

 

第二步:在Config下添加文件sphinx.yml,内容如下:

 

 

development: &my_settings

    #这个路径是我之前安装的支持中文搜索的,后续会介绍怎么安装。

    bin_path: /usr/local/coreseek/bin

    #这个路径是我之前安装的支持中文搜索的,后续会介绍怎么安装。

    charset_dictpath: /usr/local/mmseg3/etc

 

    charset_type: zh_cn.utf-8

 

    ngram_len: 0

 

test:

 

   <<: *my_settings

 

production:

 

    <<: *my_settings

 

第三步:定义索引

 

 

 define_index do

    indexes content

    indexes :name

    indexes title

   #实现实时搜索,不然你新增的数据无法搜索的到。

    indexes delta

    set_property :delta => true

  end

 

第四步:执行命令

 

               rails g migration add_delta_to_posts delta:boolean

 

修改生成文件内容

              def change

                     add_column :posts, :delta, :boolean, :default => true, :null => false

              end

执行rake db:migrate

第五步:修改index.html.erb页面

  <%= form_tag(posts_path,:method=>'get') do %>

      <%= text_field_tag :search, params[:search] %>

      <div><%= submit_tag 'Search', :name => nil %></div>

  <% end %>

第六步:修改controller

def index

   # @posts =Post.search(params[:search])

    if params[:search].nil?

      @posts = Post.all

    else

      @posts = Post.search params[:search]

    end

 

 

    respond_to do |format|

      format.html # index.html.erb

      format.json { render json: @posts }

    end

  end

 

第七步:rake ts:config、rake ts:rebuild、rake ts:index都能自动生成文件development.sphinx.conf,而

rake ts:index INDEX_ONLY 不生成文件,只是建立索引。

 

第八步:启动服务 rake ts:start

              关闭服务  rake ts:stop

 

 

第九步:

           启动rails:   rails s

 

第十步:访问页面 中英文都应该OK的。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics