要搜索多个数据流和索引,请将它们作为逗号分隔的值添加到搜索API的请求路径中。
以下请求搜索my-index-000001和my-index-000002索引。
GET /my-index-000001,my-index-000002/_search
{
"query": {
"match": {
"user.id": "kimchy"
}
}
}
我们还可以使用索引模式搜索多个数据流和索引。
以下请求以my index-*索引模式为目标。该请求搜索群集中以my index-开头的任何数据流或索引。
GET /my-index-*/_search
{
"query": {
"match": {
"user.id": "kimchy"
}
}
}
要搜索集群中的所有数据流和索引,请从请求路径中省略目标。或者,我们可以使用_all或*。
以下请求是等效的,搜索集群中的所有数据流和索引。
GET /_search
{
"query": {
"match": {
"user.id": "kimchy"
}
}
}
GET /_all/_search
{
"query": {
"match": {
"user.id": "kimchy"
}
}
}
GET /*/_search
{
"query": {
"match": {
"user.id": "kimchy"
}
}
}
Index boost
搜索多个索引时,可以使用Indexes_boost参数来增强来自一个或多个指定索引的结果。当来自某些索引的点击比来自其他索引的点击更重要时,这非常有用。
不能将indices_boost与数据流一起使用。
GET /_search
{
"indices_boost": [
{ "my-index-000001": 1.4 },
{ "my-index-000002": 1.3 }
]
}
还可以使用别名和索引模式:
GET /_search
{
"indices_boost": [
{ "my-alias": 1.4 },
{ "my-index*": 1.3 }
]
}
如果找到多个匹配项,将使用第一个匹配项。例如,如果一个索引包含在alias1中并与my index*模式匹配,则会应用1.4的提升值。



