Я просматривал эти документы для создания поискового индекса elasti c из клиента REST высокого уровня JAVA Elasti c. Кажется, пропущены шаги для аутентификации с моей учетной записью elasti c cloud. Может ли кто-нибудь указать мне соответствующую документацию?
Я запустил свой экземпляр поиска elasti c и скопировал URL-адрес конечной точки в код моего клиента.
У меня изначально были ошибки подключения, и теперь есть никто. Только ошибки аутентификации. Итак, я почти уверен, что я соединяюсь с правильным URL-адресом конечной точки и должен как-то проходить аутентификацию - возможно, с заголовком.
Теперь я вижу эту ошибку:
Исключение Elasticsearch [тип = security_exception, причина = действие [индексы: данные / запись / индекс] требует проверки подлинности]
Я могу просмотреть конечную точку моего Elasti c Поисковое развертывание без проблем с почтальоном с эта команда: GET https://:@d97215aee2.us-east-1.aws.found.io: 9243
Я также могу создать индекс, используя эту команду из Почтальона ... PUT https://elastic:4YQIMXfoSZ9mXPgY1fj7T5BU@d97218f74f6d48489b355dd7d665aee2.us-east-1.aws.found.io: 9243 / . Тем не менее, я не могу сделать то же самое из кода Java.
Вот состояние моего кода Java. Это в значительной степени код этих страниц учебника.
https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high-getting-started-initialization.html
https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.4/java-rest-high-document-index.html
import java.io.IOException;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import org.apache.http.HttpHost;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.xcontent.XContentType;
@Path("/elasticsearch")
public class ElasticSearchService {
@POST
public void createElasticIndex() throws IOException {
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(
new HttpHost("d9<deleted a bunch of characters for privacy>7d665aee2.us-east-1.aws.found.io", 9243, "https")));
IndexRequest request = new IndexRequest(
"posts",
"doc",
"1");
String jsonString = "{" +
"\"user\":\"kimchy\"," +
"\"postDate\":\"2013-01-30\"," +
"\"message\":\"trying out Elasticsearch\"" +
"}";
request.source(jsonString, XContentType.JSON);
client.close();
}
}
Я также попытался обновить URL-адрес с помощью нашего имени пользователя и пароля, как предлагается в этом сообщении: Ошибка аутентификации ElasticSearch с ElasticCloud?
По сути, я обновил свой URL-адрес следующим образом ...
RestClient.builder(
new HttpHost(
"<my user name>:<my password>@d97218<hidden characters>d665aee2.us-east-1.aws.found.io",
9243, "https")));
Это не сработало для меня. Я предполагаю, что этот человек не использовал новый клиент Elasti c High Level REST. Я получил эту ошибку:
org.glassfi sh .jersey.server.internal.process.MappableException: java .io.IOException: :@d97265aee2.us-east-1.aws.found.io: неверный адрес IPv6