rails3
1.下载coreseek-4.1-beta.tar.gz,可以在linux上运行下面命令下下载:
wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-4.1-beta.tar.gz
2. 进行解压
tar xzvf coreseek-4.1-beta.tar.gz
安装时要注意:是否为root权限,有些东西是要root权限才能安装上
3.进入coreseek-4.1-beta目录下
cd mmseg-3.2.14 ./bootstrap #输出的warning信息可以忽略,如果出现error则需要解决 ./configure --prefix=/usr/local/mmseg make && make install #可以去/usr/local 下查看一下是否存在mmseg文件夹,如果没有文件夹,请重新运行一遍上面代码。
4.注意mmseg文件夹所在的目录与下面代码对应
cd csft-3.2.14 或者 cd csft-4.0.1 或者 cd csft-4.1 sh buildconf.sh #输出的warning信息可以忽略,如果出现error则需要解决 ./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/ --with-mysql make && make install
5.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 exceptions: RAILS_ROOT/log/sphinx_exception.log #项目目录下log文件夹中新建一个sphinx_exception.log文件,这个路径也修改为对应路径 chinese_dictionary: /usr/local/mmseg/etc/ #中文字典路径 bin_path: /usr/local/coreseek/bin test: <<: *my_settings production: <<: *my_settings
6.如果是运行开发
rake ts:config 生成一个development.sphinx.conf 生产:RAILS_ENV=production rake ts:config 生成一个production.sphinx.conf
注意: 把 listen = localhost:3312 修改为 listen = 127.0.0.1:9312 并且所有 charset_type = utf-8 修改为 charset_type = zh_cn.utf-8 并且所有 charset_type = zh_cn.utf-8 下添加 charset_dictpath = /usr/local/mmseg/etc/
7.再做索引
rake ts:index INDEX_ONLY=true 生产:RAILS_ENV=production ts:index INDEX_ONLY=true
8.thinkingsphinx用法:
实时索引 最常用的就是实时索引,它要求我们在被索引的模型中增加一个属性,名为delta。 ruby script/generate migration AddDeltaToTopic delta:boolean class AddDeltaToTopic < ActiveRecord::Migration def self.up add_column :topics, :delta,:boolean, :default => true, :null => false add_column :posts, :delta,:boolean, :default => true, :null => false end def self.down remove_column :topics, :delta remove_column :posts, :delta end end define_index do indexes :title,:sortable => true indexes first_post.body,:as => :body,:sortable => true indexes author has :created_at,:updated_at,:forum_id,:digest #声明使用实时索引 set_property :delta => true end define_index do indexes topic(:title),:as => :title ,:sortable => true indexes body,:sortable => true indexes author has :created_at,:updated_at,:forum_id #声明使用实时索引 set_property :delta => true end 定时索引 set_property :delta => :datetime, :threshold => 1.hour 一小时索引一次,实际上是重建所有索引,所以注意间隔时间不要短于建立索引的时间。 默认使用updated_at,这样就不用给被索引模型添加delta属性了。 需要结合的重建索引的命令为rake thinking_sphinx:index:delta或rake ts:in:delta 延时索引 set_property :delta => :delayed
9.搜索参数与配置方式
多模型查询 ThinkingSphinx::Search.search "term", :classes => [Post, User, Photo, Event] 指定匹配模式 SPH_MATCH_ALL模式,匹配所有查询词(默认模式)。 Topic.search "Ruby Louvre",:match_mode => :all Topic.search "Louvre" PH_MATCH_ANY模式,匹配查询词中的任意一个。 Topic.search "Ruby Louvre", :match_mode => :any SPH_MATCH_PHRASE模式,将整个查询看作一个词组,要求按顺序完整匹配。 Topic.search "Ruby Louvre", :match_mode => :phrase SPH_MATCH_BOOLEAN模式,将查询看作一个布尔表达式。 Topic.search "Ruby | Louvre, :match_mode => :boolean SPH_MATCH_EXTENDED模式,将查询看作一个Sphinx内部查询语言的表达式。 User.search "@name pat | @username pat", :match_mode => :extended 加权 为了提高搜索质量,我们可以对某些模型或字段进行加权,提高它们的优先度。默认都是1 User.search "pat allan", :field_weights => { :alias => 4, :aka => 2 } ThinkingSphinx::Search.search "pat", :index_weights => { User => 10 }
10.怎么指定model所对应的表,以及model索引写法
#encoding: utf-8 class Product < ActiveRecord::Base set_table_name "product" #设定model所对应的表,可以是复数或单数 define_index do indexes :name, :sortable=>true ##索引的字段,如果其他字段也要索引,就重新写一句 indexes product_type.Title, :as => :product_type_title #表关联索引 indexes :StartCity, :sortable=>true has :Sort, :ShowStatus #搜索时有条件,必须要添加到has里 has pinstances.comment_num, :as => :pinstance_comment_nums,:type=>:integer has pinstances.mall.grade,:as => :mall_grade,:type=>:integer #has :updated_at set_property :delta => true ##代码实时索引,并且表中要有delta字段 #set_property :delta => :datetime, :threshold => 1.hour end end
11.搜索里的参数
Product.search key, :page => page, :per_page => per_page, :order => order, :with => search_params, :star => true, :match_mode => :extended2, :field_weights => { :brand_name => 4,:brand_synonym => 3, :code => 4, :full_names =>2}, :sort_mode => :extended
相关推荐
总结一下,Rails3 和 Thinking_Sphinx 的集成涉及安装 Sphinx、配置 Thinking_Sphinx、定义索引、构建索引、启动搜索守护进程以及在应用中使用搜索方法。通过这种方式,你可以为你的 Rails 应用程序引入强大的全文...
thinking-sphinx, activerecord/Rails的Sphinx插件 ThinkingThinking是将ActiveRecord连接到Sphinx完整文本搜索工具的库,并与 Rails ( 但也适用于其他 ruby 网络框架) 紧密集成。 当前版本为 v3.4.2.插件升级升级时...
3. **数据库设置**:Rails应用通常需要与数据库系统(如MySQL或PostgreSQL)集成。例如,对于PostgreSQL,需要先安装数据库软件及其开发库: ```bash sudo apt-get install -y postgresql postgresql-contrib ...
Thinking Sphinx是Ruby on Rails应用中的一款Sphinx全文搜索引擎插件,由Pat Allan创建。它允许开发者轻松地在Rails应用中集成Sphinx,实现快速、高效的全文检索功能。Sphinx是一个开源的、高性能的全文搜索引擎,常...
rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails ...
`Thinking-Sphinx` 是一个针对 `Ruby on Rails` 应用程序的全文搜索引擎插件,它利用 `Sphinx` 这个高性能、功能强大的搜索服务器来增强应用的搜索功能。`Sphinx` 本身是一个独立的搜索引擎,它提供高效、精确的全文...
3. **安装Rails**: 安装Rails本身非常简单,只需在终端输入 `gem install rails`,这将会下载并安装最新版本的Rails。 4. **验证Rails安装**: 安装完成后,你可以通过运行 `rails -v` 来检查Rails是否已正确...
- **插件安装**:使用Rails命令行工具安装插件: ```bash rails plugin install https://.../... ``` #### 四、其他常用工具 ##### 9. 安装Gem依赖 安装必要的Gem依赖,例如`execjs`和`therubyracer`: ```...
- **RubyGems**:作为Ruby的包管理工具,用于安装Rails及各种插件。 - **Rake**:用于自动化任务的构建工具,Rails项目中常用于执行特定任务。 - **Rails**:核心框架,本例中采用Rails 2.1.0。 - **数据库**:可选...
Thought Sphinx Thinking Sphinx是一个用于将ActiveRecord连接到Sphinx全文搜索工具的库,并且与Rails紧密集成(但也可以与其他Ruby Web框架一起使用)。 当前版本是v3.2.0。 Thought Sphinx Thinking Sphinx是一个...
**知识点3:Mongrel安装** Mongrel是Rails官方推荐的轻量级Web服务器之一。下载Mongrel 1.1.4版本,并根据系统环境进行安装。安装Mongrel服务器之后,还需要安装几个必备的gem插件,如`gem plugin`、`daemons`、`...
标题 "rails3.1安装与mysql配置 windows" 涉及到的是在Windows操作系统上安装Ruby on Rails 3.1框架并配置MySQL数据库的过程。这是一个关键的开发环境设置步骤,对于使用Rails进行Web开发的程序员来说至关重要。Ruby...
为了在Rails应用中整合这些功能,开发者需要在Gemfile中添加对应的插件,然后运行`bundle install`安装。接着,在控制器中配置必要的逻辑,比如处理自动完成的查询、文件上传的接收和保存,以及分页的设置。在视图层...
在Linux环境下安装Ruby on Rails需要一系列的依赖包和步骤,本资源包提供了所需的所有组件,帮助用户在Linux系统上顺利构建RoR开发环境。 1. **readline-5.1.tar.gz**: 这是Readline库的源代码包,它提供了一种交互...
**Rails 常用插件简介 - CRUD Generator 2** 在Ruby on Rails框架中,开发过程中经常需要创建、读取、更新和删除(CRUD)数据。为了提高开发效率,开发者通常会使用各种插件来自动化这个过程。CRUD Generator 2就是...
然后运行`bundle install`命令来安装插件。 **3. 使用will_paginate** 安装完成后,你需要在模型、控制器和视图中进行相应的配置。 - **在模型中**:无需特别配置,只要确保你的模型是基于ActiveRecord的,will_...
安装Rails插件通常使用内置的`script/plugin`工具,它支持多种命令如`discover`、`source`、`unsource`、`sources`等。`discover`命令会自动查找插件的源,而`source`和`unsource`则用于管理插件仓库URL。`install`...
在Linux系统上安装和配置Ruby on Rails是一个常见的任务,特别是在开发Web应用程序时。Ruby on Rails(RoR)是一个基于Ruby语言的开源Web应用框架,它遵循模型-视图-控制器(MVC)架构模式,强调简洁和生产力。在...
Rails3还支持安装插件,可以通过以下命令将插件添加到项目中: ```bash rails plugin install https://..../..git ``` 插件会被安装到`vendor/plugins`目录下,提供额外的功能或扩展。 以上就是Rails3的一些常用...