1

我正在查看 elasticsearch 并注意到您可以创建索引并批量添加项目。我目前有一系列包含 2.2 亿条目的平面文件。我正在使用 Logstash 来解析它们并将它们添加到 ElasticSearch,但我觉得它存在于 1 个索引下会很难查询。行数据最多不过1-3个属性。

在这种情况下,Elasticsearch 如何发挥作用?为了有效地查询这个索引,你是否只是向集群添加了额外的实例,它们将一起工作来处理集合?

我一直在浏览文档,它正在解释要做什么,但不一定总是解释它为什么要这样做。

4

1 回答 1

2

为了有效地查询这个索引,你是否只是向集群添加了额外的实例,它们将一起工作来处理集合?

这正是您需要做的。通常这是一个迭代过程:

  1. 首先放入数据的子集。如果时间和成本允许,您也可以放入所有数据。
  2. 在其上放置一些尽可能接近生产条件的搜索负载,例如通过打开您计划使用的任何搜索集成。如果您打算只手动发出查询,那么现在是时候尝试它们并评估它们的速度和结果的相关性了。
  3. 查看查询是否特别慢以及它们的结果是否足够相关。您更改您正在使用的索引映射或查询以获得更快的结果,并且确实将更多节点添加到您的集群。

既然你提到了 Logstash,有一些事情可能会进一步帮助:

  • 查看Filebeat以持续索引数据。您可能不需要自己进行读取文件和批量索引的工作。
  • 如果它是日志或类似日志的数据,并且您最感兴趣的是最近的结果,那么按日期和时间拆分数据可能会快得多(例如 index-2019-08-11、index-2019-08- 12、索引-2019-08-13)。请参阅索引生命周期管理功能以自动执行此操作。
  • 尝试在映射中的适当位置使用关键字字段类型。它会停止对该字段的分析,从而阻止您在该字段内进行全文搜索,并且只允许精确的字符串匹配。对于诸如“标签”字段或具有类似 [“draft”、“review”、“published”] 值的“状态”字段之类的字段很有用。

祝你好运!

于 2019-08-11T09:33:12.730 回答