Próbuję połączyć się z Java do ElasticSearch, ale mogę połączyć się przez HTTP. Nie mogę użyć TransportClient
. Czy istnieje opakowanie klienta Java wokół interfejsów REST API ElasticSearch? Jeśli tak, jak z niego korzystać?Klient HTTP HTTP dla ElasticSearch
Odpowiedz
Witam Jest zupełnie nowy projekt, który odpowiada Twoim potrzebom. To interfejs API oparty na języku Java dla Elasticsearch
Sprawdź to! jego nazwa: JEST
Nowy "oficjalny" klient java oparty na technologii REST will be available, począwszy od wersji 5.0.0-alpha4.
Przepraszam za przegraną, jestem pewien, że to, co napisałeś, było całkowicie poprawne w 2012 roku, ale jest teraz kilka implementacji open source. –
@BastianVoigt dzięki za zwrócenie na to uwagi. Zaktualizowałem swoją odpowiedź, aby odzwierciedlić ostatnią sytuację. – imotov
thx za aktualizację –
Po prostu otwieramy źródło: Flummi, klienta HTTP HTTP/REST dla Elastic Search. Imituje API klienta transportu tak blisko, jak to możliwe, co ułatwia przeniesienie istniejącego kodu. Zapewnia także lepszy poziom abstrakcji niż Jest, ponieważ raportuje wszystkie błędy z wyjątkami. Spróbuj!
Prosty przykład użycia:
Flummi flummi = new Flummi("http://elasticsearch.base.url:9200");
SearchResponse searchResponse = flummi
.prepareSearch("products")
.setQuery(
QueryBuilders.termQuery("color", "yellow").build()
)
.execute();
System.out.println("Found "
+ searchResponse.getHits().getTotalHits()
+ " products");
searchResponse.getHits()
.stream().map(hit -> hit.getSource().get("name").getAsString())
.forEach(name -> System.out.println("Name: " + name));
Since version 5.6 z Elasticsearch Java SDK one zapewnić Java REST Client.
RestClient restClient = RestClient.builder(
new HttpHost("localhost", 9200, "http"),
new HttpHost("localhost", 9201, "http")).build();
// for the RestHighLevelClient
RestHighLevelClient client =
new RestHighLevelClient(restClient);
- 1. Klient HTTP WebSocket Kit
- 2. Typowy klient HTTP i proxy
- 3. Asynchroniczny klient HTTP z Netty
- 4. Jak porównują się klient-klient i klient HTTP Apache?
- 5. Klient HTTP Erlang: inets lub ibrowse lub ...?
- 6. klient doker (doker 1,12/CentOS) http: serwer dał odpowiedź HTTP na HTTPS klient
- 7. Równoważnik rubinowy biblioteki zapytań Pythona (klient HTTP)
- 8. Status HTTP dla "już zalogowanego"
- 9. Alternatywa dla plików cookie HTTP?
- 10. Klient HTTP apache http - przykłady użycia pokazujące użycie plików cookie i wyodrębnianie odpowiedzi z obiektu HTTPResponse
- 11. Klient ElasticSearch NEST nie zwraca wyników
- 12. Brak dostawcy dla Http
- 13. Serwer proxy HTTP HTTP
- 14. apache http klient org.apache.http.NoHttpResponseException: serwer docelowy nie odpowiedział
- 15. Http czasownik bieżącego kontekstu http
- 16. Użytkownik HTTP HTTP User Agent
- 17. Moduł obsługi HTTP a HTTP
- 18. Odpowiedź HTTP dla nieobsługiwanych metod HTTP za pomocą Node.js?
- 19. Kod stanu HTTP dla niepoprawnych danych
- 20. Klient HTTP oparty na NodeJS: Jak uwierzytelnić żądanie?
- 21. Klient NodeJS i HTTP - czy pliki cookie są obsługiwane?
- 22. klient zaprzeczył konfiguracji serwera podczas próby użycia git-http-backend.exe
- 23. Klient (telefon komórkowy), jak przechwycić i zmodyfikować odpowiedź http
- 24. Jak można sprawić, aby klient HTTP NIE wykonał automatycznych przekierowań?
- 25. Wykonywanie podpisanego żądania HTTP do AWS Elasticsearch w Pythonie
- 26. Tunelowanie HTTP (RTP) dla kamer
- 27. Korzystanie Mockito dla klienta HTTP
- 28. Kod stanu HTTP dla ograniczonej kolekcji?
- 29. Co to jest kod odpowiedzi HTTP dla operacji zakończonej niepowodzeniem operacji HTTP Delete?
- 30. Jak działa pamięć podręczna HTTP HTTP?
Mam ten sam problem, muszę być w stanie połączyć się z serwerem ES tylko przez port 80. Jest ładnie wyglądający, ale niestety aplikacja "Jest przykład" znajduje się daleko za biblioteką "Jest". – Phy6