Поисковые запросы в Elasticsearch из Go.

Ответ

Query DSL в JSON: match, term, range, bool (must, should, filter). В Go клиент принимает тело запроса как io.Reader или структуру. Результат - hits с _source и _score. Пагинация - from/size или search_after. Фильтры кешируются; для точных полей используют filter context.

query := map[string]interface{}{
    "query": map[string]interface{}{
        "bool": map[string]interface{}{
            "must": []map[string]interface{}{
                {"match": map[string]string{"title": "phone"}},
            },
        },
    },
}
body, _ := json.Marshal(query)
res, _ := client.Search(client.Search.WithIndex("products"), client.Search.WithBody(bytes.NewReader(body)))
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.