عميل Elasticsearch لجافا: دليل شامل للاتصال والعمل

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

عميل Elasticsearch لجافا: دليل شامل



Elasticsearch هو نظام بحث وتحليل موزع قوي مبني على Lucene. للتفاعل معه من تطبيقات جافا، يوجد عميل رسمي يوفر واجهة برمجة تطبيقات (API) مريحة للفهرسة والبحث وإدارة البيانات. في هذه المقالة، سنشرح بالتفصيل التثبيت والإعداد والإمكانيات الأساسية لعميل Elasticsearch لجافا، بالإضافة إلى تقديم أمثلة عملية على الكود.



ما هو عميل Elasticsearch لجافا؟

عميل Elasticsearch لجافا هو مكتبة رسمية مصممة للتفاعل مع مجموعة Elasticsearch من تطبيقات جافا. يدعم طريقتين رئيسيتين:

  • Low-level REST Client — عميل منخفض المستوى يعمل مباشرة مع طلبات HTTP. يمنح تحكمًا كاملاً، لكنه يتطلب إنشاء JSON يدويًا.
  • High-level REST Client — غلاف عالي المستوى يوفر واجهة برمجة تطبيقات موجهة للكائنات للعمليات النمطية (الفهرسة، البحث، التحديث). يُوصى به لمعظم المشاريع.

بدءًا من Elasticsearch 7.0، يُوصى باستخدام High-level REST Client لأنه أكثر ملاءمة وأمانًا.



التثبيت والاتصال

لربط العميل بمشروع جافا (Maven)، أضف التبعية التالية إلى ملف pom.xml:

<dependency>    <groupId>org.elasticsearch.client</groupId>    <artifactId>elasticsearch-rest-high-level-client</artifactId>    <version>7.17.0</version></dependency>


إذا كنت تستخدم Gradle، أضف السطر التالي:

implementation 'org.elasticsearch.client:elasticsearch-rest-high-level-client:7.17.0'


بعد إضافة التبعية، قم بإنشاء نسخة من العميل:

import org.elasticsearch.client.RestHighLevelClient;import org.elasticsearch.client.RestClient;import org.apache.http.HttpHost;

public class ElasticsearchClientExample { public static void main(String[] args) { RestHighLevelClient client = new RestHighLevelClient( RestClient.builder(new HttpHost("localhost", 9200, "http")) ); // كود العمل مع Elasticsearch try { client.close(); } catch (IOException e) { e.printStackTrace(); } }}


العمليات الأساسية مع العميل



إنشاء فهرس

قبل البدء في العمل مع البيانات، يجب إنشاء فهرس (مشابه لقاعدة البيانات في SQL). مثال:

import org.elasticsearch.client.indices.CreateIndexRequest;import org.elasticsearch.client.indices.CreateIndexResponse;import org.elasticsearch.client.RequestOptions;

public void createIndex(RestHighLevelClient client, String indexName) throws IOException { CreateIndexRequest request = new CreateIndexRequest(indexName); CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT); System.out.println("تم إنشاء الفهرس: " + response.isAcknowledged());}


فهرسة مستند

المستندات في Elasticsearch هي كائنات JSON. لإضافة مستند، استخدم IndexRequest:

import org.elasticsearch.action.index.IndexRequest;import org.elasticsearch.action.index.IndexResponse;import org.elasticsearch.common.xcontent.XContentType;import java.util.HashMap;import java.util.Map;

public void indexDocument(RestHighLevelClient client, String indexName) throws IOException { Map<String, Object> jsonMap = new HashMap<>(); jsonMap.put("title", "عميل Elasticsearch لجافا"); jsonMap.put("content", "وصف تفصيلي للعمل مع Elasticsearch من جافا."); jsonMap.put("views", 150);

IndexRequest request = new IndexRequest(indexName) .id("1") .source(jsonMap);

IndexResponse respon

توصيات