为Index Aliases的Elasticsearch文件说:Elasticsearch中的索引别名和通配符索引端点是否完全相同?
该指数的别名API允许使用一个名称别名索引,所有 API的别名自动转换为实际的指标名称。 别名也可以映射到多个索引,并且当指定它时,别名将自动扩展到别名 索引。
而对于Multiple Indices的文件说:
引用跨 多个指标的index
参数支持执行,使用简单
test1,test2,test3
符号(或
_all
为 所有指数)
大多数API。它还支持通配符,例如:
test*
和 “添加”(+
)和“删除”(-
)的能力,例如:+test*,-test3
。
方案1
你必须从2014年每一个日期模式命名,如12个月的指数
someprefix_2014-07
将所有这些索引映射到名为
2014
的别名。这两个请求将返回相同的结果:
$ curl -XGET http://localhost:9200/someprefix_2014-*/_stats
$ curl -XGET http://localhost:9200/2014/_stats
方案2
您的群集中共有24个月指数,并且您决定要针对所有这些指数。
所有这些请求将返回相同的结果:
$ curl -XGET http://localhost:9200/_stats
$ curl -XGET http://localhost:9200/_all/_stats
$ curl -XGET http://localhost:9200/*/_stats
$ curl -XGET http://localhost:9200/someprefix_*/_stats
我的问题
是不是所有的这些方法“引擎盖下”做同样的事情,或者是有一个可以预期比别人更好的性能?
我问,因为我读过有关Wildcard Queries是一种常见的性能瓶颈,但我从来没有见过任何类似的警告,使用索引端点别名或通配符 - 从自定义的或特殊的默认别名(如_all
)。
非常感谢您的洞察力!另外,这正是我想听到的:-) – 2015-04-02 03:39:38
这些是最好的答案! :) – Zach 2015-04-02 12:29:45