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"} } ] }
Другие вопросы по тегам