问题标签 [searchkick]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 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]; ]]
查看一些SO questions,我正在尝试增加 ulimit 或创建一个新节点,以便问题也得到解决并减小大小。我的limits.conf 有65535 硬和软nofile。同样在 sysctl.conf fs.file-max 中超过 100000。我可以采取任何其他步骤来减小文件大小,而且我无法深入了解 elasticsearch 配置更改。
如果有人可以帮忙。谢谢
elasticsearch - 无法使用 Searchkick 重新索引
我的数据库有超过 300 万份文档需要编制索引。这是我的设置:
Heroku 上的 Rails 4.2.0beta2。将Searchkick与Found Heroku 插件一起使用。
这些是我索引的模型:
结尾
.. 通过做rake searchkick:reindex:all
.
现在,我注意到我们的 Elasticsearch 集群只索引了我一半的文档(约 150 万)。我询问了我们的集群提供商是否对文档数量有任何限制,并确认没有。我不知道为什么它停在 150 万(而不是索引所有 300 万)。但是,现在我正在尝试再次索引所有内容并注意错误或类似情况,这是它出现的第一件事(在索引任何内容之前):
出现此错误后检查集群状态,我看到创建了一个新索引而不是“覆盖”旧索引:http ://cl.ly/image/0I0v1a2T1N2W
我做错了什么?关于如何解决这个问题的任何想法?
提前致谢。
ruby-on-rails - searchkick - 具有多个属性的自动完成
使用此处给出的单个属性进行搜索时,自动完成功能正常。
可以通过->(根据this )自动完成多个属性,例如 (name,city,country )
但是,这会导致自动完成下拉/建议显示“未定义”。
对于前面的类型,我正在使用:
在代码中它被引用:
由于返回了一组以上的数据,是否需要在 typeahead js 文件中进行一些更改?
ruby-on-rails - Searchkick + Bloodhound + Typeahead 用于自动完成
我正在尝试为单个属性 实现一个简单的自动完成功能。
模型:
重新索引Rails 控制台上的行为后就可以了。
在此之后,我向控制器添加了自动完成操作,并为 routes.rb 文件添加了新路由。
控制器:
路线:
此时,如果我只是测试以下 URL:
然后我在浏览器中得到预期的结果:
现在添加一个搜索框。
_header.html.erb:
最后是Javascript:
这是使用的脚本标签:
输入任何内容时搜索框都没有显示响应,谷歌浏览器的控制台上也没有显示错误。
ruby-on-rails - Searchkick 手动删除特定记录索引
如何使用 Searchkick 手动删除特定记录索引。有重新索引特定记录的选项,但我没有找到删除记录索引的任何选项。
ruby-on-rails - Rails - 使用模型方法过滤 Searchkick 结果
我在 Rails 电子商务项目中使用 Searchkick。用户可以搜索产品列表。
在某些情况下,某些产品不会显示在网站上(例如,如果库存 = 0 等)。
根据 searchkick 文档,我在控制器中的搜索方法为@listings = Listing.search(params[:search])
. 这按预期工作。
在我的列表模型中,我有以下方法来定义可以显示哪些列表。
基于上述,我希望我的 searchkick 方法说@listings = Listing.not_expired.search(params[:search])
,但这不起作用。如何告诉 searchkick 只显示符合条件的结果?
ruby-on-rails - Always add a default where clause to searchkick queries
I have a usecase where in each session I need to dd a where clause to all searchkick queries. This is basically a case where I have data from multiple clients in multiple DBs and the searchkick index contains a field called client_id.
I dont want to keep doing it for all the queries. Is there some way by which I can say add a where: {client_id: "XXXX"} to all searchkick queries in this session.
ruby-on-rails - 了解查询被击中的字段
通过 Searchkick 使用 Elasticsearch。
我的文件看起来像这样:
我的商品型号:
搜索查询看起来像:
我想知道查询是在哪个字段上找到的。例如,如果query="El club de la lucha"
我想知道detail.est
它所在的字段。那可能吗?
ruby-on-rails - 使用 SearchKick 进行通配符搜索
有没有办法在一个单词之后和一个单词之前使用通配符,如下所述..
或使用 SearchKick gem 解决此类问题的任何其他解决方案。
ruby-on-rails - 使用 searchkick 搜索过滤器
我在我的 Rails 应用程序中使用了 searchkick。当用户在表单中键入他想要查找的名称的字母时,我使用 params[:query] 得到它。字段的名称是(名称、登录名、密码)。搜索结果返回表中。像这样的东西:
搜索可以很好地返回所有匹配的名称,但问题是我如何才能仅获取名称与查询 AND login = login1 匹配的字段?
将感谢您的帮助。提前致谢。