rails elasticsearch searchkick用法
阅读原文时间:2023年07月10日阅读:1
1.安装elasticsearch 之前要先安装java8:  参考https://www.elastic.co/guide/en/elasticsearch/reference/current/zip-targz.html#install-targz

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.tar.gz
sha1sum elasticsearch-5.5.2.tar.gz
tar -xzf elasticsearch-5.5.2.tar.gz
cd elasticsearch-5.5.2/

2.启动elasticsearch:

进入elasticsearch目录: ./bin/elasticsearch -d 后台执行ps aux|grep elasticsearch可以查看是否启动

3.查看elasticsearch状态

curl -XGET localhost:9200

{"status" : 200,"name" : "She-Venom","cluster_name" : "elasticsearch","version" : {"number" : "1.7.2","build_hash" : "e43676b1385b8125d647f593f7202acbd816e8ec","build_timestamp" : "2015-09-14T09:49:53Z","build_snapshot" : false,"lucene_version" : "4.10.4"},"tagline" : "You Know, for Search"}

GET /

{
"name" : "Cp8oag6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
"version" : {
"number" : "5.5.2",
"build_hash" : "f27399d",
"build_date" : "2016-03-30T09:51:41.449Z",
"build_snapshot" : false,
"lucene_version" : "6.5.1"
},
"tagline" : "You Know, for Search"
}

rails中使用searchkick

1.添加gem

gem 'searchkick'

2.配置model

class Product < ActiveRecord::Base
searchkick
end

3.reindex

rake searchkick:reindex:all 或 单独对某一个model

rake searchkick:reindex CLASS=your_model_class_name

4.测试查询

测试时使用准确查询

@lessons = Lesson.search params[:search], fields: [{name: :exact}]

demo:https://www.driftingruby.com/episodes/searchkick-and-elasticsearch

  http://billhung.logdown.com/posts/393386

tutorial:http://www.munocreative.com/nerd-notes/tutor-portal

api:http://www.rubydoc.info/gems/searchkick/1.3.1

参考文档:https://stackoverflow.com/questions/25052973/rails-elasticsearch-searchkick

常见错误

1Connection refused - connect(2) for "localhost" port 9200)

表结构改变一定要在启动elasticsearch的情况下,重新执行rake searchkick:reindex CLASS=your_model_class_name,再对这个model进行操作(比如添加数据等)

2启动elastic  Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME

如果在服务器中新安装了java,要重新启动一下

3 There is insufficient memory for the Java Runtime Environment to continue.

修改elasticksearch/config/jvm.options,将xms 和 xmx设置教小一些

-Xms512m
-Xmx512m

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章