发表于 2016年09月26日 14时57分03秒
在gemfile中添加
gem 'elasticsearch-model'
gem 'elasticsearch-rails'
然后在initializers中新建es的初始化文件elasticsearch.rb
Elasticsearch::Model.client = Elasticsearch::Client.new retry_on_failure: true, host: "localhost"
这里因为本地和线上都是用的服务器本地的es。所以直接写了localhost
安装es。由于使用了ik分词。so,
git clone https://github.com/medcl/elasticsearch-analysis-ik
然后,注意选择和自己的es相符合的版本
mvn package
编译之后把 target/release下的文件复制到es插件目录下
使用mac的home brew安装的话记得用brew info elasticsearch看看详细的插件目录信息。别丢错了(这里坑了很久)
然后解压ik插件文件重启es即可
需要搜索的model中加入
include Elasticsearch::Model
include Elasticsearch::Model::Callbacks
然后加入search方法。
还有建立索引
settings index: { number_of_shards: 5 } do
mappings dynamic: false, include_in_all: false do
indexes :title, {
type: :string,
term_vector: :with_positions_offsets,
analyzer: :ik,
search_analyzer: :ik
}
end
end
def self.search(q)
__elasticsearch__.search(
query: {
multi_match: {
query: q,
fields: ['title']
}
}
)
end
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
安装Java
然后从官网安装es。然后
groupadd es
useradd es -g es 0p elasticsearch
chown -R es:es /opt/elasticsearch
给es单独创建一个用户用来启动es。cd到es目录
bin/elasticsearch -d
后台启动