> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# هل يمكن استخدام ClickHouse للبحث المتجهي؟

> تعرّف على كيفية استخدام ClickHouse للبحث المتجهي، بما في ذلك تخزين التضمينات والبحث باستخدام دوال المسافة مثل تشابه جيب التمام.

{frontMatter.description}

<div id="clickhouse-for-vector-search">
  ## ClickHouse للبحث المتجهي!
</div>

نعم، يمكن لـ ClickHouse تنفيذ بحث متجهي.

تشمل أبرز مزايا استخدام ClickHouse للبحث المتجهي مقارنةً باستخدام قواعد بيانات متجهية أكثر تخصصًا ما يلي:

* استخدام إمكانات التصفية والبحث النصي الكامل في ClickHouse لتحسين مجموعة البيانات قبل إجراء البحث.
* إجراء التحليلات على مجموعات البيانات لديك.
* تنفيذ `JOIN` على بياناتك الحالية.
* من دون الحاجة إلى إدارة قاعدة بيانات أخرى تزيد تعقيد بنيتك التحتية.

إليك دليل عملي سريعًا حول كيفية استخدام ClickHouse للبحث المتجهي.

<Steps>
  <Step title="إنشاء التضمينات">
    يجب تحويل بياناتك (المستندات أو الصور أو البيانات المنظَّمة) إلى *تضمينات*. نوصي بإنشاء التضمينات باستخدام [واجهة برمجة تطبيقات OpenAI Embeddings](https://platform.openai.com/docs/api-reference/embeddings) أو باستخدام مكتبة بايثون مفتوحة المصدر [SentenceTransformers](https://www.sbert.net/).

    يمكنك اعتبار التضمين مصفوفة كبيرة من الأعداد ذات الفاصلة العائمة تمثل بياناتك. [اطلع على هذا الدليل من OpenAI لمعرفة المزيد عن التضمينات](https://developers.openai.com/api/docs/guides/embeddings).
  </Step>

  <Step title="تخزين التضمينات">
    بمجرد إنشاء التضمينات، تحتاج إلى تخزينها في ClickHouse. يجب تخزين كل تضمين في صف منفصل، ويمكن أن يتضمن بيانات وصفية لأغراض التصفية أو التجميع أو التحليلات. إليك مثالًا على جدول يمكنه تخزين الصور مع التسميات التوضيحية:

    ```sql theme={null}
    CREATE TABLE images
    (
    	`_file` LowCardinality(String),
    	`caption` String,
    	`image_embedding` Array(Float32)
    )
    ENGINE = MergeTree;
    ```
  </Step>

  <Step title="البحث عن تضمينات ذات صلة">
    لنفترض أنك تريد البحث عن صور للكلاب في مجموعة البيانات لديك. يمكنك استخدام دالة مسافة مثل `cosineDistance` لأخذ تضمين لصورة كلب والبحث عن الصور ذات الصلة:

    ```sql theme={null}
    SELECT
        _file,
    	caption,
    	cosineDistance(
            -- تضمين لصورة الكلب "المدخلة"
            [0.5736801028251648, 0.2516217529773712, ...,  -0.6825592517852783],
            image_embedding
        ) AS score
    FROM images
    ORDER BY score ASC
    LIMIT 10
    ```

    يعيد هذا الاستعلام أسماء `_file` و`caption` لأفضل 10 صور يُرجَّح أن تكون الأكثر صلة بصورة الكلب التي قدمتها.
  </Step>
</Steps>

<div id="further-reading">
  ## للمزيد من القراءة
</div>

للاطلاع على دليل عملي أكثر تفصيلًا حول البحث المتجهي باستخدام ClickHouse، يُرجى مراجعة:

* [البحث المتجهي الدقيق والتقريبي](/docs/ar/reference/engines/table-engines/mergetree-family/annindexes)
