问题标签 [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.

0 投票
2 回答
2417 浏览

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 配置更改。

如果有人可以帮忙。谢谢

0 投票
0 回答
815 浏览

elasticsearch - 无法使用 Searchkick 重新索引

我的数据库有超过 300 万份文档需要编制索引。这是我的设置:

Heroku 上的 Rails 4.2.0beta2。将SearchkickFound Heroku 插件一起使用。

这些是我索引的模型:

结尾

.. 通过做rake searchkick:reindex:all.

现在,我注意到我们的 Elasticsearch 集群只索引了我一半的文档(约 150 万)。我询问了我们的集群提供商是否对文档数量有任何限制,并确认没有。我不知道为什么它停在 150 万(而不是索引所有 300 万)。但是,现在我正在尝试再次索引所有内容并注意错误或类似情况,这是它出现的第一件事(在索引任何内容之前):

出现此错误后检查集群状态,我看到创建了一个新索引而不是“覆盖”旧索引:http ://cl.ly/image/0I0v1a2T1N2W

我做错了什么?关于如何解决这个问题的任何想法?

提前致谢。

0 投票
2 回答
1855 浏览

ruby-on-rails - searchkick - 具有多个属性的自动完成

使用此处给出的单个属性进行搜索时,自动完成功能正常。

可以通过->(根据this )自动完成多个属性,例如 (name,city,country )

但是,这会导致自动完成下拉/建议显示“未定义”。

对于前面的类型,我正在使用:

在代码中它被引用:

由于返回了一组以上的数据,是否需要在 typeahead js 文件中进行一些更改?

0 投票
1 回答
1422 浏览

ruby-on-rails - Searchkick + Bloodhound + Typeahead 用于自动完成

我正在尝试为单个属性 实现一个简单的自动完成功能。

模型:

重新索引Rails 控制台上的行为后就可以了。

在此之后,我向控制器添加了自动完成操作,并为 routes.rb 文件添加了新路由。

控制器:

路线:

此时,如果我只是测试以下 URL:

然后我在浏览器中得到预期的结果

现在添加一个搜索框。

_header.html.erb:

最后是Javascript:

这是使用的脚本标签:

输入任何内容时搜索框都没有显示响应,谷歌浏览器的控制台上也没有显示错误。

0 投票
4 回答
7160 浏览

ruby-on-rails - Searchkick 手动删除特定记录索引

如何使用 Searchkick 手动删除特定记录索引。有重新索引特定记录的选项,但我没有找到删除记录索引的任何选项。

0 投票
1 回答
656 浏览

ruby-on-rails - Rails - 使用模型方法过滤 Searchkick 结果

我在 Rails 电子商务项目中使用 Searchkick。用户可以搜索产品列表。

在某些情况下,某些产品不会显示在网站上(例如,如果库存 = 0 等)。

根据 searchkick 文档,我在控制器中的搜索方法为@listings = Listing.search(params[:search]). 这按预期工作。

在我的列表模型中,我有以下方法来定义可以显示哪些列表。

基于上述,我希望我的 searchkick 方法说@listings = Listing.not_expired.search(params[:search]),但这不起作用。如何告诉 searchkick 只显示符合条件的结果?

0 投票
1 回答
378 浏览

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.

0 投票
1 回答
31 浏览

ruby-on-rails - 了解查询被击中的字段

通过 Searchkick 使用 Elasticsearch。

我的文件看起来像这样:

我的商品型号:

搜索查询看起来像:

我想知道查询是在哪个字段上找到的。例如,如果query="El club de la lucha"我想知道detail.est它所在的字段。那可能吗?

0 投票
1 回答
985 浏览

ruby-on-rails - 使用 SearchKick 进行通配符搜索

有没有办法在一个单词之后和一个单词之前使用通配符,如下所述..

或使用 SearchKick gem 解决此类问题的任何其他解决方案。

0 投票
2 回答
900 浏览

ruby-on-rails - 使用 searchkick 搜索过滤器

我在我的 Rails 应用程序中使用了 searchkick。当用户在表单中键入他想要查找的名称的字母时,我使用 params[:query] 得到它。字段的名称是(名称、登录名、密码)。搜索结果返回表中。像这样的东西:

搜索可以很好地返回所有匹配的名称,但问题是我如何才能仅获取名称与查询 AND login = login1 匹配的字段?

将感谢您的帮助。提前致谢。