Tag: elasticsearch searchkick

Searchkick高级搜索正文子句使where子句无效

如果我使用searchkick进行高级搜索,请搜索如下弹性搜索: products = Activity.search body: {query: {bool: {must: [{ range: { min_age: {lte: 5} } }, { range: { max_age: {gte: 3} } } ] } } }, where: { category: “Programs”, start_time: ‘2015-07-22’ } …没有应用where子句。 这是预期的吗? 我必须使用body来实现我的所有查询吗? 有没有办法在searchkick中解决这个问题? 慢日志输出: [2015-07-29 21:03:53,369][INFO ][index.search.slowlog.query] [ES Dev] [activities_development_20150729165655530][2] took[21.1ms], took_millis[21], types[], stats[], search_type[QUERY_THEN_FETCH], total_shards[5], source[{“query”:{“bool”:{“must”:[{“range”:{“min_age”:{“lte”:5}}},{“range”:{“max_age”:{“gte”:3}}}]}}}], extra_source[],

searchkick索引相关的模型字段

我有一个rails应用程序,我正在从Sphinx切换到ElasticSearch并使用gem searchkick。 我有一个模型教师和模型标签(通过gem),教师可以有多个标签关联。 在Teacher模型中,我已经定义了这样的索引: def search_data { name: name, intro: intro, bio: bio, tag_name: tags.name } end Name,intro和bio是教师属性,但我想索引与教师关联的标签的名称。 我怎样才能做到这一点? 它现在的方式,它索引对象的名称(关系),我如何索引标签对象内的属性名称?

Elasticsearch日志文件巨大的性能降级

我正在使用RoR开发一个名为searchkick的应用程序和一个gem,这个gem在内部使用elasticsearch。 一切正常,但在制作过程中,我们遇到了一个奇怪的问题,一段时间后网站出现故障。 我们发现的原因是服务器上的内存被过度使用了。 我们删除了前一周的一些elasticsearch日志文件,发现内存使用率从92%减少到47%。 我们使用滚动日志记录,每天备份日志。 现在,我们面临的问题是,前一天只有1个日志文件,内存越来越高。 日志文件占用了大量空间,即使是当前的文件需要4GB! 我怎么能防止这种情况? 消息几乎是警告级别。 [00:14:11,744][WARN ][cluster.action.shard ] [Abdul Alhazred] [?][0] sending failed shard for [?][0], node[V52W2IH5R3SwhZ0mTFjodg], [P], s[INITIALIZING], indexUUID [4fhSWoV8RbGLj5jo8PVoxQ], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[?][0] failed recovery]; nested: EngineCreationFailureException[[?][0] failed to create engine]; nested: LockReleaseFailedException[Cannot forcefully unlock a NativeFSLock which is held by another indexer component: /usr/lib64/elasticsearch-1.1.0/data/elasticsearch/nodes/0/indices/?/0/index/write.lock]; ]] […]

rake环境弹性搜索:import:所有FORCE = y一直失败

我正在运行搜索和弹性搜索,我一直在尝试重新创建我的索引,因为我的rails应用程序正在崩溃,但这也一直在失败。 我对此非常陌生,所以感到非常失落。 我运行rake environment elasticsearch:import:all FORCE=y 但错误是 Starting up a new ElasticSearch client with [IMPORT] Loading models from: /home/ubuntu/workspace/sample_app/app/models 2016-03-11 16:32:07 +0000: [Faraday::ConnectionFailed] Connection refused – connect(2) for “localhost” port 9200 {:host=>”localhost”, :port=>9200, :protocol=>”http”} rake aborted! ArgumentError: users does not exist to be imported into. Use create_index! or the :force option to create it. /usr/local/rvm/gems/ruby-2.2.1/gems/elasticsearch-model-0.1.8/lib/elasticsearch/model/importing.rb:118:in […]

Rails Searchkick / Elasticsearch has_many和belongs_to association

我试图使用Searchkick运行搜索并返回基于多个模型。 我的书模型包含了这个 class Book < ActiveRecord::Base searchkick has_many :book_subjects has_many :subjects, through: :book_subjects belongs_to :author belongs_to :publisher end 然后我的控制器有这个 def index if params[:search].present? @books = Book.search(params[:search], operator: “or”) else @books = Book.all end end 我希望搜索结果能够搜索相关模型并返回任何结果 – 所以boo主题名称,作者和发布者。 谢谢

如何允许用户使用带有Searchkick on Rails的弹性搜索仅搜索他们的post?

我希望用户只能搜索他们的post而不显示其他用户创建的post。 我到底该怎么做? 我正在使用带有Searchkick gem的Elastic Search 。 我尝试了这个,但它仍然显示来自其他用户的post: 发布控制器 @posts = current_user.posts.search params[:search]

在Rails 4.1中使用Searchkick gem在Elasticsearch中设置Facets

我希望用户能够轻松找到一个系列,所以想要设置方面。 我已按照seachkick的指示进行操作 ,一切正常,但是当我设置Facets时,我得到以下作为返回。 我希望它像在他们的文档中一样。 希望有人能提供帮助。 我在myapp.com/movies中得到了这个 { “name”=> { “_type”=> “terms”, “missing”=> 0, “total”=> 1, “other”=> 0, “terms”=> [ { “term”=> “Bloop”, “count”=> 1 } ] }, “imdb”=> { “_type”=> “terms”, “missing”=> 0, “total”=> 1, “other”=> 0, “terms”=> [ { “term” => “http://www.bloop.com”, “count” => 1 } ] } } #app/views/movies/index.html.erb #app/controllers/movies_controller.rb def index query […]