Elasticsearch es básicamente invencible en la búsqueda de texto completo, y también tiene mucho éxito en Big Data. Se puede usar como nosql (o originalmente nosql).
Este artículo presenta brevemente el arranque de Spring para usar el lenguaje Kotlin para conectarse a Elasticsearch. Sin embargo, no daré una introducción detallada. Si desea tener una comprensión más profunda del uso de ElasticSearch en Java/Kotlin, consulte el "Manual de API Java de Elasticsearch" que escribí antes de https://gitee.com/quanke/elasticsearch-java/ contiene ejemplos de uso, incluidas las trampas con las que hemos golpeado cuando lo usamos.
Si no comprende elasticsearch en absoluto, primero comprenda e instale el servicio Elasticsearch
Hay muchas formas de conectarse con ElasticSearch
Cabe señalar que si se usa los datos de Spring Elasticsearch, Spring Boot 1.5 ++ versión no admite la última versión de Elasticsearch.
A continuación se muestran las versiones correspondientes de Spring Data Elasticsearch y Elasticsearch
| Spring Data Elasticsearch | elasticsearch |
|---|---|
| 3.0.0.rc2 | 5.5.0 |
| 3.0.0.m4 | 5.4.0 |
| 2.0.4. Release | 2.4.0 |
| 2.0.0.libia | 2.2.0 |
| 1.4.0.m1 | 1.7.3 |
| 1.3.0. | 1.5.2 |
| 1.2.0. | 1.4.4 |
| 1.1.0. | 1.3.2 |
| 1.0.0. | 1.1.1 |
La versión Elasticsearch que estamos utilizando es 5.5.6, y la versión de arranque de Spring es 1.5.6, y admite Elasticsearch 5.0 o arriba. Spring Data Elasticsearch no es la versión de lanzamiento. Usamos el cliente Java Elasticsearch. Sin embargo, la recomendación oficial es una mejor manera. Puede referirse al "Elasticsearch Java REST API Manual" que escribí https://gitee.com/quanke/elasticsearch-java-rest, pero este artículo todavía usa el cliente java Elasticsearch.
Building Spring Boot Kotlin Proyectos
Si tiene problemas para construir el proyecto, puede consultar mi artículo anterior "Creando una API RESTFULL con Spring Boot y Kotlin"
Construir con gradle, agregar el archivo build.gradle
dependencias {compilar "org.elasticsearch: elasticsearch: $ elastic_version" compilar "org.elasticsearch.client: transport: $ elastic_version"}Archivo build.gradle completo
group 'name.quanke.kotlin'version '1.0-SNAPSHOT'buildscript { ext.kotlin_version = '1.2.10' ext.spring_boot_version = '1.5.4.RELEASE' ext.springfox_swagger2_version = '2.7.0' ext.mysql_version = '5.1.21' ext.mybatis_version = '1.1.1' ext.elasticsearch_version = '5.5.1' ext.fastjson_version = '1.2.7' Repositorios {mavencentral ()} dependencias {classpath "org.jetbrains.kotlin: kotlin-cradle-plugin: $ kotlin_version" classpath ("org.springframework.boot: spring-boot-gradle-plugin: $ spring_boot_version") // Kotlin integra el constructor de parámetros predeterminado de SpringBoot, y establece todas las clases, abre el complemento de clases ("org.jetBrains.kotlin: kotlin-noarg: $ kotlin_version") classpath ("org.jetbrains.kotlin: kotlin-allopen: $ kotlin_version")}} Aplicar complemento: 'kotlin'apply plugin: "kotlin-spring" // consulte https://kotlinlang.org/docs/refers/compiler-plugins.html#kotlin Plugin: 'org.springframework.boot'Apply Plugin: "kotlin-jpa" //https://stackoverflow.com/questions/32038177/kotlin-with-jpa-defefault-constructor-helljar {baseName =' capítulo11-6-6-8-service {0.1.0 '} mavencentral ()} dependencias {compilar "org.jetbrains.kotlin: kotlin-stdlib-jre8: $ kotlin_version" compile ("org.jetbrains.kotlin: kotlin-reflect: $ {kotlin_version}") Compile "org.springframework.boot:spring-boot-starter-web:$spring_boot_version" compile "org.elasticsearch:elasticsearch:$elasticsearch_version" compile "org.elasticsearch.client:transport:$elasticsearch_version" compile "com.alibaba:fastjson:$fastjson_version" compile "org.apache.commons: commons-lang3: 3.6" testCompile "org.springframework.boot: spring-boot-starter-test: $ spring_boot_version" testCompile "org.jetbrains.kotlin: kotlin-test-junit: $ kotlin_version"} compilekotlin {kotlinOptions.Jeget.Jeget. "1.8"} compiletestkotlin {kotlinoptions.jvmtarget = "1.8"}Escriba primero la clase de base de prueba ElasticsearchClient
import com.alibaba.fastjson.jsonimport com.alibaba.fastjson.serializer.serializerFeatureImport org.elasticsearch.accion.search.searchResponseImport org.elasticsearch.client.transport.transportclientimport org.elasticsearch.common.settings.settingsimport org.elasticsearch.common.transport.inetsockettransportaddressImport org.elasticsearch.transport.client.preBuiltTransportClientImport Org.junit.afterImport org.junit.bebefefefefefefefefefefefefefefefefefefefefefefefefefefefFFFFFernef yaabe de visualización externa* El clúster que solicita ES es un factor externo para el clúster. * Creado por http://quanke.name el 2017/11/10. */Abrir clase ElasticsearchClient {Cliente VAR protegido: ¿TransportClient? = null @before @throws (excepción :: class) diversión setup () {val essettings = settings.builder () .put ("cluster.name", "utan-es") // Establecer el nombre de ES instance.put ("client.transport.sniff", true) // Originalmente el estado de todo /*** El método de conexión aquí se refiere al hecho de que el complemento X-Pack no está instalado. Si se instala X-Pack, consulte [ElasticsearchxpackClient]* 1. El método del cliente Java es comunicarse en el puerto 9300 utilizando el protocolo TCP* 2. El método del cliente HTTP es comunicarse en el puerto 9200 utilizando el protocolo HTTP*/ Cliente = PreBuiltTransportClient (ESSETTINGS)) .addtransportaddress (inetSocketTransportAddress (inetaddress.getByName ("192.168.1.10"), 9300)) println ("ElasticsearchClient Connection es exitosa")} @After @throws (excepción :: class) Fun Tearsdown () {if! = Null) {Cliente! println (SearchResponse: SearchResponse) {val SearchHits = SearchResponse.hits.hits para (SearchHit en SearchHits) {println (json.tojSonstring (SearchHit.source, SerializerFeature.prettyFormat))}}}Ejecutar pruebas unitarias
importar org.elasticsearch.index.query.QueryBuilders.matchallQueryImport org.junit.testimport org.junit.runner.runwithimport org.springframework.boot.test.context.springboottestimport org.springframework.test.context.junit4.springringrin http://quanke.name el 2018/1/9. */@Runwith (springrunner :: class) @SpringBoottestClass ApplicationTests: ElasticSearchClient () {@Test Fun `ES Test" `() {val QB = MatchallQuery () val respuesta = cliente !! condición.get () println (respuesta)}}Escribimos un spring-spring-boot-starter-es, y tenemos la oportunidad de abrirlo.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.