Ruby Elasticsearch API: возврат последней записи в индекс
Я включил поле "_timestamp" в отображении индекса и успешно извлек последнюю запись в индексе с помощью REST API эластичного поиска. Тело POST-запроса, которое я использовал, выглядит так:
{
"query": {
"match_all": {}
},
"size": "1",
"sort": [
{
"_timestamp": {
"order": "desc"
}
}
]
}
Теперь я пытаюсь перевести это в синтаксис Rubyasticsearch-api... Это то, что я до сих пор:
client = Elasticsearch::Client.new host: 'blahblahblah:9200'
json = client.search index: 'index',
type: 'type',
body: { query: { match_all: {} }},
sort: '_timestamp',
size: 1
Я пробовал несколько вариантов приведенного выше кода, но, кажется, ничто не возвращает самую новую запись. Я не могу найти много примеров в Интернете с использованием синтаксиса Rubyasticsearch API, поэтому любая помощь будет принята с благодарностью!
Если есть способ вернуть последнюю запись без использования поля "_timestamp", я тоже готов это попробовать!
1 ответ
Решение
Я наконец нашел правильный синтаксис:
json = client.search index: 'index',
type: 'type',
body: { query: { match_all: {} }, size: 1, sort: [ { _timestamp: { order: "desc"} } ] }