У меня не было бы одного индекса на пользователя, это пустая трата ресурсов, особенно если на пользователя приходится только 10 документов.
Вместо этого я бы использовал отфильтрованные псевдонимы по одному на пользователя.
Таким образом, индекс будет называться users
, а тип будет статическим именем, например, doc
.Для пользователя 123 все документы этого пользователя будут храниться в users/doc/xyz
, и в каждый документ необходимо добавить идентификатор пользователя, например,
PUT users/doc/xyz
{
...
"userId": 123,
...
}
Затем вы можете определить отфильтрованный псевдоним для всех документовпользователь 123, как это:
POST /_aliases
{
"actions" : [
{
"add" : {
"index" : "users",
"alias" : "user-123",
"filter" : { "term" : { "userId" : "123" } }
}
}
]
}
Если вам нужно удалить все документы пользователя 123, то вы можете просто сделать это так:
POST user-123/_delete_by_query?q=*