/ / Applicazione Spring Boot con la versione attuale elasticsearch - java, spring, spring-mvc, elasticsearch

Applicazione Spring Boot con la versione attuale elasticsearch - java, spring, spring-mvc, elasticsearch

Ho recentemente cercato di includere elasticsearch inuno dei miei progetti. Pertanto ho cercato le diverse possibilità per farlo. Fondamentalmente è venuto giù per usare a) il client di trasporto (i nodi del cluster di protocollo interno usano anche per comunicare = la mia comprensione) o b) implementare tutto come chiamate REST HTTP per conto mio.

Come b) non sembra una buona opzione, e io "Utilizzato per generare dati comunque ho provato a utilizzare spring-data-elasticsearch che è stato aggiornato di recente alla versione 3.0.0 per supportare la versione 5.5.0, che è eccellente dato che l'ultima versione era molto vecchia.

Bene, ho provato tutto ma non sono riuscito a ottenereper lavorare con il mio progetto, in quanto sembra davvero una specie di dipendenza in cui ti trovi. Il mio progetto è troppo grande, non posso semplicemente aggiornarlo a spring boot 2.0.0M4 che credo sarebbe necessario per supportare la nuova versione spring-data-elasticsearch - giusto?

Quindi, qualcuno potrebbe consigliarti sulla correntee il modo preferito per ora e il futuro è su come affrontare Elasticsearch nei progetti di primavera? Dobbiamo davvero implementare l'intera API REST da soli? Mi sto perdendo qualcosa?

Qui è il client REST che dovrebbe essere usato, se ce n'è uno usato, giusto?

Questo è la tabella di compatibilità che conosco che è vecchia.

Grazie!

risposte:

2 per risposta № 1

Purtroppo ci sono parecchie opzioni là fuori:

  • C'è il client di trasporto che hai menzionato, anche se non (ancora) deprecato, non è la strada da seguire e non vorrei avviare un nuovo progetto con esso (se possibile).
  • C'è il client REST di basso livello (citato inil post sul blog che hai "linkato", che è stato aggiunto in 5.0, ma è compatibile anche con le versioni precedenti. Mentre funziona, non vuoi veramente usarlo, dal momento che è piuttosto basso (come suggerisce il nome ).
  • Il client REST di alto livello ha appena stato rilasciato con 5.6 - questo è quello che vuoi usare andando avanti (e ti separerà da unspecifica versione Boot / Data Spring). Al momento supporta solo le API index, delete, aggregate, search e bulk, ma per operazioni regolari questo dovrebbe essere sufficiente. Altre API saranno aggiunte in futuro e puoi sempre tornare al client di basso livello se devi svolgere altre attività (come impostare una mappatura specifica per un test di integrazione).
  • Con il rilascio di Spring Data Kay, anche questosupporta Elasticsearch 5.x. Se hai bisogno di usare Spring Data, questo è quello che vorresti usare, ma tieni presente che si tratta di un progetto di community e lo sviluppo può essere più lento di quanto tutti desiderino (anche se accettano richieste di pull ;-)). Come hai scoperto, dovrai utilizzare Spring Boot 2 per avere Spring Data Kay integrato. Questa potrebbe essere una buona ragione per l'aggiornamento o potrebbe essere un blocco per te.

1 per risposta № 2

Che ne dici di scrivere un piccolo servizio che sarebbeun'applicazione standalone in spring boot 2, con la più recente dipendenza ES, e dandogli un'API REST compatibile con i tuoi requisiti per il resto del progetto? È possibile comunicare con esso tramite RestTemplate per i principianti.

In questo modo puoi iniziare a dividere il tuo grandeprogetto in sottoprogetti più piccoli e eventualmente anche microservizi. Anche spring boot 2 ha alcune opzioni reattive davvero belle, che sono davvero utili per l'elaborazione dei dati.