, если вы хотите сделать запрос с URI, таким как /transactions/transactionId/_search
, это означает, что вы планируете создавать несколько типов каждый раз, когда приходит новый идентификатор транзакции. Теперь, за исключением того, что это плохой дизайн, даже невозможно иметь более одного типа в индексе (после версии 5.XI) и типы были полностью удалены с версии 7.X. Одним из решений является использование самого идентификатора транзакции в качестве идентификатора документа при создании. Затем вы можете получить журнал, связанный с одним ID транзакции, выполнив запрос GET transactions/transactionId
(хотя читайте об ограничениях длины идентификатора документа), но это может вызвать другую проблему, заключающуюся в том, что для одной транзакции может быть несколько журналов, поэтому каждый журнал запись с таким же идентификатором просто перезапишет предыдущую запись. Наилучшим решением здесь будет изменение способа запроса этих записей.
Для этого вы можете указать в качестве одного из полей в тексте json TransactionId вместе с, возможно, созданной отметкой времени во время вставки. (пусть ES создает документы с автоматически сгенерированным идентификатором), а затем запрашивает все журналы, связанные с транзакцией, например:
POST transactions/_search
{
"sort": [
{
"createdDate": {
"order": "asc"
}
}
],
"query":{
"bool":{
"must":[
{
"term":{
"transactionId.keyword":"<transaction id>"
}
}
]
}
}
}
Надеюсь, это поможет