Elasticsearch ist im Grunde genommen unbesiegbar bei der Volltext-Suche und auch in Big Data sehr erfolgreich. Es kann als NoSQL (oder ursprünglich NoSQL) verwendet werden.
In diesem Artikel werden Spring Boot kurz vorgestellt, um die Kotlin -Sprache zu verwenden, um eine Verbindung zu Elasticsarch zu erzielen. Ich werde jedoch keine detaillierte Einführung geben. Wenn Sie ein tieferes Verständnis für die Verwendung von Elasticsearch in Java/Kotlin haben möchten, finden Sie im Handbuch "Elasticsearch Java API". Ich habe vor https://gitee.com/quanke/elasticsearch-java/ geschrieben, die Nutzungsbeispiele enthält, einschließlich der Fallen, mit denen wir getroffen haben, wenn wir es verwenden.
Wenn Sie Elasticsearch überhaupt nicht verstehen, verstehen Sie bitte den Elasticsearch -Dienst zuerst und installieren Sie ihn
Es gibt viele Möglichkeiten, sich mit Elasticsearch zu verbinden
Es ist zu beachten, dass die Spring -Boot 1.5 ++ -Version die neueste Version von Elasticsearch nicht unterstützt, wenn Spring Data Elasticsearch verwendet wird.
Im Folgenden finden Sie die entsprechenden Versionen von Spring Data Elasticsearch und Elasticsearch
| Federdaten Elasticsarch | Elasticsarch |
|---|---|
| 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 |
Die von uns verwendete Elasticsearch -Version ist 5.5.6 und die Spring -Boot -Version ist 1.5.6 und unterstützt Elasticsearch 5.0 oder höher. Spring Data Elasticsearch ist nicht die Release -Version. Wir verwenden den Elasticsearch Java -Client. Die offizielle Empfehlung ist jedoch ein besserer Weg. Sie können sich im Handbuch "Elasticsearch Java Rest API" beziehen. Ich habe https://gitee.com/quanke/elasticsearch-java-rest geschrieben, aber dieser Artikel verwendet immer noch den Elasticsearch-Java-Client.
Bauen von Spring Boot Kotlin -Projekten
Wenn Sie Probleme haben, das Projekt aufzubauen, können Sie sich auf meinen vorherigen Artikel "Erstellen einer erholsamen API mit Spring Boot und Kotlin" beziehen.
Erstellen Sie mit Gradle, fügen Sie die build.gradle -Datei hinzu
Abhängigkeiten {Compile "org.elasticsearch: Elasticsearch: $ elasticsearch_version" compile "org.elasticsearch.client: Transport: $ elasticsearch_version"}Vervollständigen Sie Build.gradle -Datei
Gruppe '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'. '1.1.1' ext.Elasticsearch_version = '5.5.1' ext.fastjson_version = '1.2.7' Repositories {mavencentral ()} Abhängigkeiten {classPath "org.jetbrains.kotlin: kotlin-gradle-plugin: $ kotlin_version" classPath ("org.springframework classPath ("org.jetbrains.kotlin: kotlin-allopen: $ kotlin_version")}} Plugin anwenden: 'kotlin'apply plugin: "kotlin-sping" // siehe https://kotlinlang.org/docs/reference/compiler-Plugin.html#kotlin-ccompiler-Plugin.html#kotlin-ccompiler-plugin.htmtml#kotlin- 'org.springframework.boot'apply plugin: "kotlin-jpa" //https://stackoverflow.com/questions/32038177/kotlin-with-jpa-default-constructor-helljar { baseName = 'chapter11-6-8-service' version = '0.1.0'}repositories { mavencentral ()} Abhängigkeiten {kompile "org.jetbrains.kotlin: kotlin-stdlib-jre8: $ kotlin_version" compile ("org.jetbrains.kotlin: kotlin-reflect: $ {kotlin_version}") compile compile compile compile compile compile compile compile compile compile compile "org.springframework "org.apache.commons: commons-Lang3: 3.6" testCompile "org.springFramework.boot: Spring-Boot-Starter-Test: $ spring_boot_version" testCompile "org.jetbrains "1.8"} compiletestkotlin {kotlinoptions.jvmtarget = "1.8"}Schreiben Sie zuerst die Testbasisklasse ElasticsearchClient
Importieren com.alibaba.fastjson.jsonimport com.alibaba.fastjson.serializer.Serializerfeatureimport org.elasticsearch.action.search.searchresponseMport org.elasticsarch.client.transportssimports org.elasticsearch.common.transport.inetsockettransportAddressimport org.elasticsearch.transport.client.prebuiltTransportClientImport org.junit.afterimport org.junit.beforeMport Java.net.NETMPRESS/** ** ** *** Initialisierung von Elasticsearchie und Elasticsearchie als Elasticalisierung von Elastics 5.5. Besucher, der Cluster, der ES anfordert, ist ein externer Faktor für den Cluster. * Erstellt von http://quanke.name am 2017/11/10. */Open Class ElasticsearchClient {Protected var Client: TransportClient? = null @before @throws (Exception :: class) Fun setup () {val Essettings = Settings.builder () .put ("cluster.name", "utan- es") // Legen Sie den Namen des ES-Instanzes fest. /*** Die Verbindungsmethode hier bezieht sich darauf, dass das X-Pack-Plug-In nicht installiert ist. Wenn X-Pack installiert ist, siehe [ElasticsearchxpackClient]* 1. Die Java-Client-Methode besteht darin, über Port 9300 mit dem TCP-Protokoll zu kommunizieren. .AddtransportAddress (inetSocketTransportAddress (inetaddress.getByName ("192.168.1.10"), 9300) println ("ElasticsarchClient Connection ist erfolgreich")} @After @Throws (Ausnahme: Class) Fun TearsDown () {if (Client! println (SearchResponse: SearchResponse) {val searchhits = searchResponse.hits.hits für (Searchhit in Searchhits) {println (json.tojonstring (Searchhit.Source, SerializerFeature.prettyFormat))}}}}}}}}}}Führen Sie Unit -Tests aus
import org.elasticsearch.index.query.querybuilders.MatchAllQueryimport org.junit.Testimport org.junit.runner.runwithimport org.springframework.boot.Test.Context.springBoottestimport Orig.springrunerFramework.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test.Test - http://quanke.name am 2018/1/9. */@Runwith (Springrunner :: class) @springboottestClass applicationTests: elasticsearchClient () {@Test Fun `ES -Test" `() {val qb = matchAllQuery () val response = client !! Conditions.get () println (Antwort)}}Wir haben einen Tag in den Startstarter-ETs geschrieben und haben die Möglichkeit, es zu open Source.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.