Elasticsearch لا يقهر بشكل أساسي في البحث عن النص الكامل ، كما أنه ناجح للغاية في البيانات الضخمة. يمكن استخدامه كـ NOSQL (أو في الأصل NOSQL).
يقدم هذا المقال بإيجاز Spring Boot لاستخدام لغة Kotlin للاتصال بـ Elasticsearch. ومع ذلك ، لن أعطي مقدمة مفصلة. إذا كنت ترغب في الحصول على فهم أعمق لاستخدام Elasticsearch في Java/Kotlin ، فيرجى الرجوع إلى "دليل API Java Elasticsearch" لقد كتبت قبل https://gitee.com/quanke/elasticsearch-java/ على أمثلة استخدام ، بما في ذلك المزالق التي توصلنا إليها عندما نستخدمها.
إذا كنت لا تفهم Elasticsearch على الإطلاق ، فيرجى أولاً فهم وتثبيت خدمة Elasticsearch
هناك العديد من الطرق للاتصال بـ Elasticsearch
تجدر الإشارة إلى أنه إذا تم استخدام بيانات Spring Data Elasticsearch ، فإن إصدار Spring Boot 1.5 ++ لا يدعم أحدث إصدار من Elasticsearch.
فيما يلي الإصدارات المقابلة من بيانات Spring Elasticsearch و Elasticsearch
| بيانات الربيع 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 ، وإصدار Boot Spring هو 1.5.6 ، ويدعم Elasticsearch 5.0 أو أعلى. Spring Data Elasticsearch ليس إصدار الإصدار. نستخدم عميل Java Elasticsearch. ومع ذلك ، فإن التوصية الرسمية هي طريقة أفضل. يمكنك الرجوع إلى "Elasticsearch Java Rest API Manual" لقد كتبت https://gitee.com/quanke/elasticsearch-java-rest ، لكن هذه المقالة لا تزال تستخدم عميل Java Elasticsearch.
بناء مشاريع Kotlin SPRING BOOT
إذا كانت لديك مشاكل في بناء المشروع ، فيمكنك الرجوع إلى مقالتي السابقة "إنشاء واجهة برمجة تطبيقات Restfull مع SPRING BOOT و KOTLIN"
بناء مع Gradle ، أضف في ملف build.gradle
التبعيات {compile "org.elasticsearch: elasticsearch: $ elasticsearch_version" compile "org.elasticsearch.client: transport: $ 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 ext.elasticsearch_version = '5.5.1' ext.fastjson_version = '1.2.7' repositories {mavencentral ()} التبعيات {classpath "org.jetbrains.kotlin: kotlin-rgrle-plugin: $ kotlin_version" classpath ("org.springframework.boot: spring-boot-plugin: $ spring_boo_version") classpath ("org.jetbrains.kotlin: kotlin-allopen: $ kotlin_version")}} تطبيق البرنامج المساعد: 'kotlin'apply plugin: "kotlin-spring" // see https://kotlinlang.org/docs/reference/compiler-plugins.html#kotlin "org.springframework.boot'apply المكون الإضافي:" Kotlin-JPA "//https://stackoverflow.com/questions/32038177/kotlin-with-jpa-default-constructor-helljar Mavencentral ()} التبعيات {compile "org.jetbrains.kotlin: Kotlin-Stdlib-Jre8: $ kotlin_version" compile ("org.jetbrains.kotlin "org.springframework.boot: spring-boot-starter-web: $ spring_boot_version" compile "org.elasticsearch: elasticsearch: $ elasticsearch_version" compile "org.elasticsearch.client: transpor "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} compilekotly "1.8"} compiletestkotlin {kotlinoptions.jvmtarget = "1.8"}اكتب اختبار الفئة ElasticsearchClient أولاً
استيراد com.alibaba.fastjson.jsonimport com.alibaba.fastjson.serializer.serializerFeatureImport org.elasticsearch.action.searchResponseimport org.elasticsearch.client.transportcportimport org.elasticsearch.common.settings.settingsym org.elasticsearch.common.transport.inetsocketTransportAddressImport org.elasticsearch.transport.client.prebuilttransportclientimport org.junit.afterimport org.junit.eforeimport الزائر ، المجموعة التي تطلب ES عامل خارجي للمجموعة. * تم إنشاؤه بواسطة http://quanke.name في 2017/11/10. */فتح فئة ElasticSearchClient {محمية Var Client: TransportClient؟ = nullbefore athrows (استثناء :: class) الإعداد المرح () {val essettings = settings.builder () .put ("cluster.name" ، "utan-es") // قم بتعيين اسم eS exate.put ("العميل. /*** تشير طريقة الاتصال هنا إلى حقيقة أن المكون الإضافي X-Pack غير مثبت. إذا تم تثبيت X-Pack ، راجع [ElasticsearchxpackClient]* 1. طريقة عميل Java هي التواصل على المنفذ 9300 باستخدام بروتوكول TCP* 2. طريقة عميل HTTP هي التواصل على المنفذ 9200 باستخدام بروتوكول HTTP*/ Client = prebuilttransportclient (Essetings) .addTransportAddress (inetSocketTransportAddress (inetaddress.getByName ("192.168.1.10") ، 9300)) println ("elasticsearchclient connection ناجحة")} efterthrows (استثناء: class) متعة keadsdown () {if (client! println (SearchResponse: SearchResponse) {val searchhits = searchResponse.hits.hits for (searchhit in searchhits) {println (json.tojsonstring (searchhit.source ، serializerfeature.prettyformat))}}}}}}تشغيل اختبارات الوحدة
استيراد org.elasticsearch.index.query.querybuilders.matchallqueryimport org.junit.testimport org.junit.runner.runwithimport org.springframework.boot.test.context.springboottestimport org.springframework.test.juntest4 تم إنشاؤه بواسطة http://quanke.name في 2018/1/9. */@runwith (SpringRunner :: class) springBootTestClass ApplicationTests: ElasticsearchClient () {Test Fun `es test" `() {val qb = matchallquery () val respons ظروف. get () println (استجابة)}}لقد كتبنا Dayu-Spring-Boot-Starter-Es ، ولدينا الفرصة لفتح مصدره.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.