首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

thinking_sphinx在rails施用的简单描述

2013-07-16 
thinking_sphinx在rails使用的简单描述? ? ? ?thinking_sphinx在rails使用的简单描述?写作目的:由于项目需

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

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

热点排行