Как подключиться кasticsearch с помощью boost asio?

Я пытаюсь написать фрагмент кода на C ++, чтобы сделать POST на сервере Flexiblesearch. Сервер работает на IP 172.20.1.160, и я могу PUT данных, используя curl, как в учебнике Elasticsearch:

curl -XPUT 'localhost:9200/twitter/tweet/1?op_type=create&pretty' -H 'Content-Type: application/json' -d'

{
«пользователь»: «кимчи»,
«post_date»: «2009-11-15T14: 12: 12»,
«message»: «пробовать Elasticsearch»}

Но когда я пытаюсь сделать что-то похожее с boost ASIO, мое соединение явно отклоняется.

Вот минимальный компилируемый код, показывающий, как я пытаюсь создать соединение и который выдает ошибку:

///   Compiled with:
///     g++ --std=c++14 foo.cpp  -lboost_system -lpthread
#include <boost/asio.hpp>

constexpr const char *carbon_port   = "2003";
constexpr const char *ES_port       = "9200";
constexpr const char *server_ip     = "172.20.1.160";int main()
{
boost::asio::io_service io_service;
boost::asio::ip::tcp::resolver resolver(io_service);
boost::asio::ip::tcp::resolver::query query(server_ip, ES_port);
auto endpoint = *resolver.resolve(query);
boost::asio::ip::tcp::socket socket (io_service);
socket.connect(endpoint);
}

Что бы это ни стоило, у меня также есть углеграфитовый сервер, работающий на той же машине, и я могу подключаться и отправлять туда данные по текстовому протоколу, но я не могу установить сокетное соединение сasticsearch, я получаю исключение :

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error> >'
what():  connect: Connection refused

Может ли кто-нибудь объяснить мне, что мне нужно знать, чтобы это работало?

0

Решение

по умолчанию elasticsearch слушает локальный только, если вы хотите, чтобы он слушал все порты, в config/elasticsearch.yml добавить строку network.host: 0.0.0.0 и перезапустите эластичный поиск.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector