thinking_sphinx在rails使用的简单描述

本文详细介绍如何在Rails项目中配置并使用Thinking Sphinx插件实现全文检索功能,包括安装配置、索引定义、实时搜索等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       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的。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值