Elasticsearch查询多个索引

为什么要使用多个索引?

您可能有多个原因,可能会对Elasticsearch集群中的给定应用程序使用多个索引。最受欢迎的事实之一是删除索引非常有效(而删除许多文档则效率不高)。如果您的应用程序经常添加和删除数据,这将很有用。例如,如果您的应用程序最近100天在Elasticsearch中保持数据,则可以每周将数据划分为一个索引。这种方法非常有效,可以在大约15个索引中进行搜索以查询全部100天,这是一个适度的折衷方案。

另一个示例是多租户应用程序(例如,类似Gmail的应用程序),其中每个用户的数据都存储在单个索引中。这使您可以独立缩放每个索引。

在需要查询多个索引的情况下,Elasticsearch通过允许您指定搜索的范围以包括多个索引(以逗号分隔的列表,基于正则表达式或其他方便选项的方式)来简化此操作。也一样

假设一个方案每周使用一个索引,下面是一些示例,搜索带有“ dremio”标签的文档:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

# search a specific index

curl -XGET 'localhost:9200/2017-week47/_search?q=tag:dremio'

 

# search specific year

curl -XGET 'localhost:9200/2017-*/_search?q=tag:dremio'

 

# search a specific week across all years (eg, holidays)

curl -XGET 'localhost:9200/*-week51/_search?q=tag:dremio'

 

# search across all weeks

curl -XGET 'localhost:9200/_all/_search?q=tag:dremio'

 

# search across all weeks, except Christmas week

curl -XGET 'localhost:9200/+_all,-*week51/_search?q=tag:dremio'

 

# In case you are using types, the same idea applies to types:

 

# search across users and orders, for all weeks, except Christmas week

curl -XGET 'localhost:9200/+_all,-*week51/users,orders/_search?q=tag:dremio'

 

猜你喜欢

转载自blog.csdn.net/allway2/article/details/109153607