Elasticsearch pada dasarnya tidak terkalahkan dalam pencarian teks lengkap, dan juga sangat berhasil dalam data besar. Ini dapat digunakan sebagai NoSQL (atau awalnya NoSQL).
Artikel ini secara singkat memperkenalkan boot musim semi untuk menggunakan bahasa Kotlin untuk terhubung ke Elasticsearch. Namun, saya tidak akan memberikan pengantar rinci. Jika Anda ingin memiliki pemahaman yang lebih dalam tentang penggunaan Elasticsearch di Java/Kotlin, silakan merujuk ke "Elasticsearch Java API Manual" yang saya tulis sebelum https://gitee.com/quanke/elasticsearch-java/ berisi contoh penggunaan, termasuk pitam yang telah kami kenal ketika menggunakannya.
Jika Anda tidak memahami Elasticsearch sama sekali, silakan pahami terlebih dahulu dan instal Layanan Elasticsearch
Ada banyak cara untuk terhubung ke Elasticsearch
Perlu dicatat bahwa jika Spring Data Elasticsearch digunakan, versi Spring Boot 1.5 ++ tidak mendukung versi terbaru Elasticsearch.
Di bawah ini adalah versi yang sesuai dari Spring Data Elasticsearch dan Elasticsearch
| Data Spring 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.release | 2.2.0 |
| 1.4.0.m1 | 1.7.3 |
| 1.3.0.Release | 1.5.2 |
| 1.2.0.release | 1.4.4 |
| 1.1.0.release | 1.3.2 |
| 1.0.0.release | 1.1.1 |
Versi Elasticsearch yang kami gunakan adalah 5.5.6, dan versi Spring Boot adalah 1.5.6, dan mendukung Elasticsearch 5.0 atau lebih tinggi. Spring Data Elasticsearch bukan versi rilis. Kami menggunakan klien Java Elasticsearch. Namun, rekomendasi resmi adalah cara yang lebih baik. Anda dapat merujuk pada "Elasticsearch Java Rest API Manual" yang saya tulis https://gitee.com/quanke/elasticsearch-java-rest, tetapi artikel ini masih menggunakan klien Java Elasticsearch.
Membangun Proyek Kotlin Boot Musim Semi
Jika Anda memiliki masalah membangun proyek, Anda dapat merujuk ke artikel saya sebelumnya "Membuat API Restfull dengan Spring Boot dan Kotlin"
Bangun dengan Gradle, tambahkan file build.gradle
Dependensi {compile "org.elasticsearch: Elasticsearch: $ Elasticsearch_Version" compile "org.elasticsearch.client: transport: $ elasticsearch_version"}Lengkap file build.gradle
grup '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 ='.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1. ext.elasticsearch_version = '5.5.1' ext.fastjson_version = '1.2.7' repositori {mavencentral ()} dependensi {classpath "org.jetbrains.kotlin: Kotlin-gradle-plugin: $ Kotlin_Version" classpath("org.springframework.boot:spring-boot-gradle-plugin:$spring_boot_version")// Kotlin integrates SpringBoot's default parameterless constructor, and sets all classes by default open class plugin classpath("org.jetbrains.kotlin:kotlin-noarg:$kotlin_version") classpath ("org.jetbrains.kotlin: Kotlin-Allopen: $ Kotlin_version")}} Terapkan plugin: 'Kotlin'Apply Plugin: "Kotlin-Spring" // Lihat https://kotlinlang.org/docs/reference/compiler-pluler-lugin-luginer Plugin: 'org.springframework.boot'Apply plugin: "Kotlin-jpa" //https://stackoverflow.com/questions/32038177/kotlin-with-jpa-default-constructor-helljar {basename =' bab11-6-6-8 Version '0.' 0.1.1. mavencentral ()} dependensi {compile "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: $ elasticsearch_version" compile "com.alibaba: compile compile" compile "compile" compile "compile" compile "compile" compile "compile" compile "compile" compile "compile" compile "compile" compile "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"}} {Kotlin {Kotlin {Kotlin {Kotlin {Kotlin {Kotlin {Kotlin {Kotlin: $ "1.8"} compileTestKotlin {Kotlinoptions.jvmTarget = "1.8"}Tulis kelas tes basis elasticsearchclient terlebih dahulu
Impor com.alibaba.fastjson.jsonImport com.alibaba.fastjson.serializer.serializerfeatureImport org.elasticsearch.action.search.searchResponseupport org.elasticsearch.client.transport.sportclientImport org.elasticsearc.common.common.client.transport.sevonport org.elasticsearch.common.transport.inetsocketTransportAddressimport org.elasticsearch.transport.client.prebuilttransportClientImport org.junit.afterimport org.junit.beforeImport Java.net.intaddress/** ** **.BeforeImport Java.net.intaddress/** Pengunjung eksternal, cluster yang meminta ES adalah faktor eksternal untuk cluster. * Dibuat oleh http://quanke.name pada 2017/11/10. */Open Class ElasticsearchClient {Protected Var Client: TransportClient? = null @before @throws (pengecualian :: class) fun setup () {val essettings = settings.builder () .put ("cluster.name", "utan-es") // Atur nama ES instance.put ("client.transport.sniff", true) // awalnya mencicipi status seluruh status dari seluruh local dan clentsport. list.build () /*** Metode koneksi di sini mengacu pada fakta bahwa plug-in X-Pack tidak diinstal. Jika X-Pack diinstal, lihat [ElasticsearchXPackClient]* 1. Metode klien Java adalah berkomunikasi pada port 9300 menggunakan protokol TCP* 2. Metode klien http adalah berkomunikasi pada port 9200 menggunakan protokol HTTP*/ klien = PrebuiltRansport (Essettings) .addtransportAddress (inetsocketTransportAddress (inetaddress.getByName ("192.168.1.10"), 9300)) println ("Koneksi ElasticsearchClient berhasil")} @Thows @throws (pengecualian :: class) Fun Tearsdown () {IF (klien! = println (SearchResponse: SearchResponse) {val searchHits = searchResponse.hits.hits for (searchHit di searchHits) {println (json.tojsonstring (searchhit.source, serializerfeature.prettyformat))}}}Jalankan tes unit
impor org.elasticsearch.index.query.querybuilders.matchallqueryImport org.junit.testimport org.junit.runner.runwithImport org.springframework.boot.test.context.springboottestport org.spramework.test.testext.junexport.spring.spramework.testex http://quanke.name pada 2018/1/9. */@Runwith (springrunner :: class) @springboottestclass ApplicationTests: ElasticsearchClient () {@test fun `es test" `() {val qb = matchallQuery () val response = klien !!. Persiapan (" twitter ") // dapat berupa banyak indeks. conditions.get () println (respons)}}Kami menulis DayU-Spring-Boot-Starter-ES, dan kami memiliki kesempatan untuk membuka sumbernya.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.