У меня есть настройка кластера Elasti c, так что есть определенные индексы c для определенного набора документов с идентификатором 1234, так что индекс будет index_2020_02_1234 для документов для клиента 1234 в феврале, но также есть index_2020_02_OTHER для документов для другие клиенты, так как клиент 1234 имеет большинство документов. Для «ДРУГИХ» индексов у нас есть маршрутизация с использованием идентификатора клиента.
Я хотел бы выполнить поиск по всем индексам для нескольких клиентов, например, для клиентов 1234 и 5678.
Поскольку индексы для клиента 1234 этого не делают Я не могу использовать маршрутизацию. Я не могу использовать поиск по заданным значениям c, т. е. / index_2020_02_1234, index_2020_02_OTHER / _search? routing = 5678, так как у index_2020_02_1234 нет маршрутизации.
Мне было интересно, есть ли способ создать тело поискового запроса, чтобы сделать это, чтобы я мог вызвать конечную точку / _search?
Я знаю, что вы можете иметь:
"query": {
"terms": {
"_index": ["index_2020_02_1234", "index_2020_02_OTHER"]
}
}
и
"query": {
"terms": {
"_routing": ["5678"]
}
}
Мне нужна комбинация _index и _routing в запросе. Возможно ли это?
Будет ли что-то вроде работы:
"query": {
"bool": {
"should": [
{
"terms": {
"_index": ["index_2020_02_1234"]
}
},
{
"terms": {
"_index": ["index_2020_02_1234"],
"_routing": ["5678"]
}
}
]
}
}