ElasticSearchは基本的にフルテキスト検索で無敵であり、ビッグデータでも非常に成功しています。 NOSQL(または元々NOSQL)として使用できます。
この記事では、Spring Bootを簡単に紹介して、Kotlin Languageを使用してElasticsearchに接続します。ただし、詳細な紹介はしません。 Java/KotlinでElasticsearchの使用をより深く理解したい場合は、https://gitee.com/quanke/elasticsearch-java/の前に書いた「Elasticsearch Java APIマニュアル」を参照してください。
Elasticsearchがまったく理解していない場合は、まずElasticSearch Serviceを理解してインストールしてください
ElasticSearchに接続する方法はたくさんあります
Spring Data Elasticsearchを使用している場合、Spring Boot 1.5 ++バージョンはElasticSearchの最新バージョンをサポートしていないことに注意してください。
以下は、Spring Data Elasticsearchと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.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 |
使用しているElasticSearchバージョンは5.5.6で、Spring Bootバージョンは1.5.6で、Elasticsearch 5.0以上をサポートしています。 Spring Data Elasticsearchはリリースバージョンではありません。 ElasticSearch Javaクライアントを使用しています。ただし、公式の推奨はより良い方法です。 https://gitee.com/quanke/elasticsearch-java-restを書いた「elasticsearch java rest apiマニュアル」を参照できますが、この記事ではelasticsearch javaクライアントを使用しています。
Building Spring Boot Kotlinプロジェクト
プロジェクトの構築に問題がある場合は、以前の記事「Spring BootとKotlinを使用したRestfull APIの作成」を参照できます。
Gradleでビルドし、build.gradleファイルを追加します
依存関係{compile "org.elasticsearch:elasticsearch:$ elasticsearch_version" compile "org.elasticsearch.client:$ elasticsearch_version"}}build.gradleファイルを完了します
グループ 'name.quanke.kotlin'version' 1.0-snapshot'buildscript {ext.kotlin_version = '1.2.10' ext.spring_boot_version = '1.5.4.release' ext.springfox_swagher2_version = '2.7.0' '1.1.1' ext.Elasticsearch_version = '5.5.1' ext.fastjson_version = '1.2.7' repositories {mavencentral()}依存関係{classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ kotlin_version" classPath( "org.springframework.boot:spring-boot-gradle-plugin:$ spring_boot_version")// kotlinは、スプリングブートのデフォルトのパラメーターレスコンストラクターを統合し、デフォルトのオープンクラスクラスパスを設定し、 "org.jetbrains.kotlin:kotlin-noarg:$ kotlin_version" classpath( "org.jetbrains.kotlin:kotlin-allopen:$ kotlin_version")}}プラグインを適用する: 'kotlin'applyプラグイン: "kotlin-spring" // https://kotlinlang.org/docs/docs/reference/reference-plugins.html#kotlin-plugin-complingpling-complin 'org.springframework.boot'applyプラグイン: "kotlin-jpa" //https://stackoverflow.com/questions/32038177/kotlin-with-jpa-default-constructor-helljar {basename =' basename = 'chapter11-6-8-service =' 0.1.0 '} mavencentral()}依存関係{compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$ kotlin_version" compile( "org.jetbrains.kotlin:kotlin- reflt:$ {kotlin_version}")コンパイル"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:$ json_。" "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" "1.8"} cypiletestkotlin {kotlinoptions.jvmtarget = "1.8"}最初にテストベースクラスElasticSearchClientを作成します
com.alibaba.fastjson.jsonimport com.alibaba.fastjson.serializer.serializerfeatureimport org.elasticsearch.action.search.earch.searchresponseimport org.lasticsearch.client.transport.transportclientimport org.elasticsearch.common.settings.settings.settings.settings.settings.settings org.elasticsearch.common.transport.inetsockettransportaddressimport org.elasticsearch.transport.client.prebuilttransportmportimportimport org.junit.afterimport org.junit.beforeimport Java.net.intadress/**訪問者、ESを要求するクラスターは、クラスターの外部要因です。 * 2017/11/10にhttp://quanke.nameによって作成されました。 */Open Class ElasticSearchClient {Protected var Client:TransportClient? = null @before @throws(例外:: class)fun setup(){val essettings = settings.builder().put( "cluster.name"、 "utan-es")// list.build() /***ここでの接続方法は、x-packプラグインがインストールされていないという事実を指します。 X-Packがインストールされている場合は、[ElasticSearchXPackClient]* 1を参照してください。Javaクライアント方式は、TCPプロトコル* 2を使用してポート9300で通信することです。HTTPクライアントメソッドは、HTTPプロトコル*/クライアント= Prebuilttransportcliant(sessettings)を使用してポート9200で通信することです。 .addtransportaddress(inetsocketTransportaddress(inetaddress.getByname( "192.168.1.10")、9300))println( "elasticsearchclient connection is custruced")} @after @throws(例外::クラス)ファン涙(){クライアント!= null !! println(searchResponse:searchResponse){val searchhits = searchResponse.hits.hits for(searchhit in searchhits){println(json.tojsonstring(searchhit.source、serializerfeature.prettyformat)}}}}}}ユニットテストを実行します
Import.Lasticsearch.index.Query.QueryBuilders.MatchallQueryimport org.junit.testimport org.junit.runner.runwithimport org.springframework.boot.test.context.context.springboottestimport org. http://quanke.name by 2018/1/9。 */@runwith(springrunner :: class)@springboottestclassアプリケーションテスト:elasticsearchclient(){@test fun `es test" `(){val qb = matchallquery()val Response = client !! conditions.get()println(response)}}Dayu-Spring-Boot-Starter-esを書きましたが、オープンソースを開く機会があります。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。