小编Vam*_*hna的帖子

弹性搜索中的分析器

我无法理解使用轮胎宝石的弹性搜索中的分析器概念.我实际上是这些搜索概念的新手.有人可以在这里帮我一些参考文章或解释分析器实际上做了什么以及为什么使用它们?

我看到弹性搜索中提到了不同的分析器,如关键字,标准,简单,滚雪球.没有分析仪的知识,我无法弄清楚究竟是什么符合我的需要.

analyzer elasticsearch tire

44
推荐指数
2
解决办法
2万
查看次数

来自elasticsearch的太多打开文件警告

持续获取以下警告消息.不确定应该做什么.看到一些要求增加文件描述符数量的相关帖子.

怎么做?

即使我现在增加,我是否会在添加新指数时遇到同样的问题.(目前使用大约400个索引,6个分片和1个副本).指数的数量往往会增长更多.

[03:58:24,165][WARN ][cluster.action.shard     ] [node1] received shard failed for [index9][2], node[node_hash3], [P], s[INITIALIZING], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[index9][2] failed recovery]; nested: EngineCreationFailureException[[index9][2] failed to open reader on writer]; nested: FileNotFoundException[/data/elasticsearch/whatever/nodes/0/indices/index9/2/index/segments_1 (Too many open files)]; ]] 
[03:58:24,166][WARN ][cluster.action.shard     ] [node1] received shard failed for [index15][0], node[node_hash2], [P], s[INITIALIZING], reason [Failed to create shard, message [IndexShardCreationException[[index15][0] failed to create shard]; nested: IOException[directory '/data/elasticsearch/whatever/nodes/0/indices/index15/0/index' exists and is a directory, but cannot be listed: list() returned null]; ]] 
[03:58:24,195][WARN ][cluster.action.shard …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

16
推荐指数
1
解决办法
4万
查看次数

elasticsearch group-by multiple fields

我正在寻找在elasticsearch中分组数据的最佳方法.Elasticsearch不支持sql中的'group by'之类的东西.

假设我有1k类别和数百万种产品.您认为渲染完整类别树的最佳方式是什么?of couse jou需要一些元数据(图标,链接目标,seo-titles,...)和类别的自定义排序.

  1. 使用聚合:示例:https://found.no/play/gist/8124563 看起来可用,如果您必须按一个字段分组,并需要一些额外的字段.

  2. 在Facet中使用多个字段(不会工作)示例:https://found.no/play/gist/1aa44e2114975384a7c2 这里我们失去了不同字段之间的关系.

  3. 建立有趣的方面 https://found.no/play/gist/8124810

例如使用这3个"解决方案"构建类别树很糟糕.解决方案1可能工作(ES 1现在不稳定)解决方案2不起作用解决方案3是痛苦的,因为它感觉很难看,你需要准备大量数据并且方面爆炸.

可能替代方案可能不是在ES中存储任何类别数据,只是id https://found.no/play/gist/a53e46c91e2bf077f2e1

你可以从另一个系统获得关联的类别,比如redis,memcache或数据库.

这将最终成为干净的代码,但性能可能会成为一个问题.例如从memcache/Redis /数据库加载1k类别可能很慢.另一个问题是同步2个数据库比同步一个更困难.

你怎么处理这样的问题?

我很抱歉链接,但我不能在一篇文章中发布超过2个.

group-by elasticsearch

13
推荐指数
3
解决办法
3万
查看次数

在elasticsearch中重新启动节点后快速恢复

请考虑elasticsearch.yml中的以下设置

gateway.recover_after_data_nodes: 3
gateway.recover_after_time: 5m
gateway.expected_data_nodes: 3
Run Code Online (Sandbox Code Playgroud)

当前设置:说,我有3个数据节点.现在,如果我决定重新启动数据节点(由于设置的微小变化),恢复将在节点重启后立即按照expected_data_nodes设置启动.将有许多未分配的分片,它们将根据其包含的数据缓慢分配.

为了避免这种情况,有没有办法将所有未分配的分片分配给特定节点?(在我的情况下是重新启动的节点),一旦完成,ES应该接管重新平衡.

主要是我想避免群集状态的重时间从黄色到绿色.(在我的情况下,它在几小时的范围内)

我可以为此目的使用群集重路由API吗?

或者是否有任何其他API将所有未分配的分片一次性传输到特定节点?

elasticsearch

9
推荐指数
1
解决办法
2万
查看次数

标签 统计

elasticsearch ×4

analyzer ×1

group-by ×1

tire ×1