Elasticsearch:为减少响应时间,我可以做出哪些成本最低,影响最大的变更?

时间:2015-09-24 13:05:55

标签: elasticsearch scalability

任何领域的无指导初学者经常发现自己在试图解决问题时咆哮着错误的树 - 这个问题被要求提示它会以更直接的方式解决问题。

关于问题:

我和ES一起工作了大约一个月,到目前为止它已经很棒了。我已经从CSV中获得的一组数据中逐步索引到ES,并且我开始遇到响应时间慢的问题。我希望缩短响应时间,但不知道什么是好方法/接近它的最佳方式。

到目前为止,我的研究告诉我,它确实取决于许多变量。因此,下面列出的ES变量的详细信息可能有助于您编写答案:

  • 碎片&东西
    • 我说"&东西"因为我不太了解这里有什么重要意义。
    • 运行默认ES设置,5个分片,1个节点。
    • 运行index-time-search-as-type-type,与ES guide完全一样。在那里有一些PUT索引的设置:"number_of_shards": 1。我不确定这会对事情产生什么影响。
  • 索引
    • 具有相似映射的2个索引(镜像数据库,所以不要将它们组合起来)
    • 多语言,但目前我只关心英语。
    • 如上所述,为index-time-search-as-type配置(min:3,max:20)。
  • 文档
    • 目前已索引〜1mil文件。
    • 总共有大约4万个文件要索引。
    • 非常简短的文件,例如每个文件10个英文单词的5个字段。
    • 所有~4mil行的总CSV文件大小仅为~400MB。
  • 查询
    • 主要查询作为bool(应该)查询运行。
    • 重要的分数脚本。
    • 重载脚本排序的聚合。
    • 模糊搜索(模糊:1)。
  • 硬件
  • 响应时间
    • 索引中具有非常高频率(通常是单个英语单词)的查询将永远(~7-9000ms)返回结果。
    • 更具体的查询(> = 2 eng words)返回更多可接受的响应时间(~2-3000ms)。
    • 理想情况下,所有响应时间均应<2s。

如果还有其他变量很重要,而且我已经错过了,请告诉我,然后我会对其进行编辑。

谢谢!

1 个答案:

答案 0 :(得分:0)

我开启了caching(有点是一种权宜之计)并帮助了很多人。满足我现在的需求。