搜索 - shuiyuebingdian/ElasticSearch GitHub Wiki

Search 搜索API允许您执行搜索查询并获取与查询匹配的搜索命中。可以使用简单查询字符串作为参数来提供查询,也可以使用 请求正文来提供 查询。

多索引,多类型

所有搜索API都可以跨索引使用在多种类型中,并且可以通过支持多索引语法跨多个索引应用 。例如,我们可以搜索Twitter索引内所有类型的所有文档:

GET /twitter/_search?q=user:kimchy

我们还可以在特定类型中进行搜索:

GET /twitter/tweet,user/_search?q=user:kimchy

我们还可以在多个索引中搜索带有特定标签的所有tweet(例如,当每个用户都有自己的索引时):

GET /kimchy,elasticsearch/tweet/_search?q=tag:wow

或者我们可以使用_all 占位符搜索所有可用索引中的所有推文:

GET /_all/tweet/_search?q=tag:wow

甚至搜索所有索引和所有类型:

GET /_search?q=tag:wow

默认情况下,elasticsearch不会根据请求命中的分片数量拒绝任何搜索请求。尽管Elasticsearch将优化协调节点上的搜索执行,但是大量分片可能会对CPU和内存方面产生重大影响。通常最好以较少的大碎片组织数据来组织数据。如果您想配置软限制,则可以更新action.search.shard_count.limit群集设置,以拒绝命中太多碎片的搜索请求。