给小站加一下搜索功能,试试玩玩elasticsearch


发表于 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

后台启动


进行评论:


游客 2019年04月02日 01时43分31秒

Achat De Cialis Non Generique <a href=http://abtsam.com>viagra online pharmacy</a> Cheap Tadacip

博客搜索

博客类别