Elasticsearch в основном непобедим в полнотекстовом поиске, а также очень успешно в больших данных. Его можно использовать как nosql (или изначально nosql).
В этой статье кратко представлены Spring Boot для использования языка Kotlin для подключения к Elasticsearch. Тем не менее, я не дам подробного введения. Если вы хотите более глубокое понимание использования Elasticsearch в Java/Kotlin, пожалуйста, обратитесь к «Elasticsearch Java API», который я написал до https://gitee.com/quanke/elasticsearch-java/ содержит примеры использования, в том числе подтягивания, которые мы поразили, когда мы его использовали.
Если вы вообще не понимаете Elasticsearch, пожалуйста, сначала поймите и установите сервис Elasticsearch
Есть много способов подключиться к 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.srelease | 2.4.0 |
| 2.0.0. | 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.Erlease | 1.1.1 |
Версия Elasticsearch, которую мы используем, составляет 5.5.6, а версия Spring Boot - 1.5.6, и поддерживает Elasticsearch 5.0 или выше. Spring Data Elasticsearch не является версией выпуска. Мы используем клиент Elasticsearch Java. Тем не менее, официальная рекомендация - лучший способ. Вы можете ссылаться на «Elasticsearch Java Rest API», я написал https://gitee.com/quanke/elasticsearch-java-rest, но в этой статье все еще используется клиент Elasticsearch Java.
Строительство Spring Boot Kotlin Projects
Если у вас есть проблемы с созданием проекта, вы можете ссылаться на мою предыдущую статью «Создание API Restfull с Spring Boot и Kotlin»
Построить с Gradle, добавьте в файл build.gradle
Зависимости {compile "org.elasticsearch: elasticsearch: $ elasticsearch_version" compile "org.elasticsearch.client: транспорт: $ elasticsearch_version"}Полный файл build.gradle
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_swger2_version = '2.7.0' ext.mysql_version = '5.1.21' ext.mairs_graTIS = '2.7.0' ext.mysql_version = ' 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 интегрирует конструктор без параметра-по умолчанию Springboot и устанавливает все классы по умолчанию открытого плагина класса Classpath ("org.jetbrains.kotlin: kotlin-noarg: $ kotlin_version") classpath ("org.jetbrains.kotlin: kotlin-allopen: $ kotlin_version")}} Применить плагин: 'kotlin'apply plugin: "kotlin-spring" // См. 'org.springframework.boot'apply плагин: "kotlin-jpa" //https://stackoverflow.com/questions/32038177/kotlin-with-jpa-default-constructor-helljar {basename =' Глава-6-8-service 'verse =' 0.1.0 '{reposisteries {mysmenties {MAVENERES {MAVENERIES {MAVENERIES {MAVENERIES {MAVENERIES {MAVEMENIES {MAVEMENIES {MAVEMENEIS {MAVEMENIES) {compile "org.jetbrains.kotlin: kotlin-stdlib-jre8: $ kotlin_version" compile ("org.jetbrains.kotlin: kotlin-reflect: $ {kotlin_version}") compile "org.spramework.boot: spring-boot-starter-web: $ spring_boot_brehrion". "org.elasticsearch: Elasticsearch: $ elasticsearch_version" compile "org.elasticsearch.client: транспорт: $ elasticsearch_version" compile "com.alibaba:fastjson:$fastjson_version" compile "org.apache.commons: commons-lang3: 3.6" "org.springframework.boot: spring-boot-starter-test: $ spring_boot_version" testcompile "org.jetbrains.kotlin: kotlin-test-junit: $ kotlin_version"} compilekotlin {kotlinoptions.jvmtarget = "1.8"} compileteStkotlin "1.8"}Напишите сначала elasticsearchclient тестового базового класса
Импорт com.alibaba.fastjson.jsonimport com.alibaba.fastjson.serializer.serializerfeatureImport org.elasticsearch.action.search.searchresponseimport org.elasticsearch.client.transport.transclientimport org.elasticsearch.common.settings.settingsimport org.elasticsearch.common.transport.inetsockettransportaddressimport org.elasticsearch.transport.client.prebuilttransportclientimport org.junit.afterimport org.junit.beforeimport java.net.intaddress/** Инициализация Elasticsearch 5.5. Запрос ES является внешним фактором для кластера. * Создано http://quanke.name на 2017/11/10. */Open Class ElasticSearchClient {защищенный VAR Client: TransportClient? = null @before @throws (exection :: class) fun setup () {val essettings = settings.builder () .put ("cluster.name", "utan-es") // Установить имя ES Encament.put ("client.transport.sniff", True) // Первоначально Sniff of the Clifster). /*** Метод подключения здесь относится к тому факту, что плагин X-Pack не установлен. Если x-pack установлен, см. .AddTransportAddress (inetSocketTransPortAddress (inetAddress.getByName ("192.168.1.10"), 9300)) println ("ElasticSearchClient Connemt println (searchresponse: searchresponse) {val searchhits = searchresponse.hits.hits для (searchhit in searchhits) {println (json.tojsonstring (searchhit.source, serializerfeature.prettoriformat))}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}Запустите модульные тесты
Импорт org.elasticsearch.index.query.querybuilders.matchallQueryImport org.junit.testimport org.junit.runner.runwithimport org.springframework.boot.test.context.springboottemport org.spramework.test.context.junit.******************** http://quanke.name 2018/1/9. */@Runwith (springrunner :: class) @springboottestclass applicationtests: elasticsearchclient () {@test fun `es test" `() {val qb = matchallquery () val response = client !! Query conditys.get () println (ответ)}}Мы написали Dayu-Spring-Boot-Starter-ES, и у нас есть возможность открыть его.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.