请求正文搜索 - shuiyuebingdian/ElasticSearch GitHub Wiki

Request Body Search 可以使用搜索DSL来执行搜索请求,该搜索DSL 在其主体内包括 Qusery DSL

GET /twitter/tweet/_search
{
	"query" : {
		"term" : { "user" : "kimchy" }
	}
}

参数:

timeout
搜索超时,将搜索请求限制为在指定的时间值内执行,并且在到期之前累积到该点的匹配项进行保释。默认为无超时。请参阅时间单位。 from
从某个偏移量获取匹配。默认为0。
size
返回的点击数。默认为10。如果您不希望获得任何匹配,而仅关注匹配和/或聚合的数量,则将该值设置为0有助于提高性能。
search_type
要执行的搜索操作的类型。可以是 dfs_query_then_fetch或query_then_fetch。默认为query_then_fetch。有关更多信息,请参见搜索类型。
request_cache
设置为true或false启用或禁用对size值为0的请求的搜索结果进行缓存,即聚合和建议(不返回最高匹配)。请参阅分片请求缓存。
terminate_after
每个分片要收集的最大文档数,达到该数量时查询执行将提前终止。如果设置,响应将具有一个布尔字段,terminated_early以指示查询执行是否实际上已终止。默认为no terminate_after。
batched_reduce_size
应在协调节点上立即减少的分片结果的数量。如果请求中的分片数量可能很大,则此值应用作保护机制以减少每个搜索请求的内存开销。
除此之外,search_type和request_cache必须作为query-string参数传递。搜索请求的其余部分应在正文本身内传递。正文内容也可以作为名为source的REST参数传递。

快速检查任何匹配的文档

如果只想知道是否有匹配特定查询的文档,可以将设置size为0以表明我们对搜索结果不感兴趣。另外,我们可以设置terminate_after为1 指示每当找到第一个匹配的文档时(每个分片)就可以终止查询执行。

GET /_search?q=message:elasticsearch&size=0&terminate_after=1

响应将size设置为0,将不包含任何匹配。hits.total也会等于0,表示没有匹配的文档,或者大于等于0表示在提前终止查询时至少有许多文档与查询匹配。同样,如果查询提前终止,则响应中的terminated_early标志将设置为true。