> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# مصدر القاموس YAMLRegExpTree

> تهيئة ملف YAML كمصدر لقواميس أشجار التعبيرات النمطية.

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            غير مدعوم في ClickHouse Cloud
        </div>;
};

يقوم المصدر `YAMLRegExpTree` بتحميل شجرة التعبيرات النمطية من ملف YAML على نظام الملفات المحلي.
وقد صُمم حصريًا للاستخدام مع [تخطيط القاموس `regexp_tree`](/ar/reference/statements/create/dictionary/layouts/regexp-tree)
ويوفّر تعيينات هرمية من التعبيرات النمطية إلى السمات لعمليات البحث المستندة إلى الأنماط، مثل تحليل user agent.

<Note>
  المصدر `YAMLRegExpTree` متاح فقط في ClickHouse Open Source.
  بالنسبة إلى ClickHouse Cloud، صدّر القاموس إلى CSV ثم حمّله عبر [مصدر ClickHouse table](/ar/reference/statements/create/dictionary/sources/clickhouse) بدلًا من ذلك.
  راجع [استخدام قواميس regexp\_tree في ClickHouse Cloud](/ar/reference/statements/create/dictionary/layouts/regexp-tree#use-regular-expression-tree-dictionary-in-clickhouse-cloud) لمزيد من التفاصيل.
</Note>

<div id="configuration">
  ## الإعداد
</div>

```sql theme={null}
CREATE DICTIONARY regexp_dict
(
    regexp String,
    name String,
    version String
)
PRIMARY KEY(regexp)
SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml'))
LAYOUT(regexp_tree)
LIFETIME(0);
```

حقول الإعدادات:

| الإعداد | الوصف                                                                                                                                    |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `PATH`  | المسار المطلق إلى ملف YAML الذي يحتوي على شجرة التعبيرات النمطية. وعند إنشائه عبر DDL، يجب أن يكون الملف موجودًا في الدليل `user_files`. |

<div id="yaml-file-structure">
  ## بنية ملف YAML
</div>

يحتوي ملف YAML على قائمة بعُقَد شجرة التعبيرات النمطية. ويمكن أن تتضمن كل عقدة سمات وعُقَد فرعية، بما يشكّل بنية هرمية:

```yaml theme={null}
- regexp: 'Linux/(\d+[\.\d]*).+tlinux'
  name: 'TencentOS'
  version: '\1'

- regexp: '\d+/tclwebkit(?:\d+[\.\d]*)'
  name: 'Android'
  versions:
    - regexp: '33/tclwebkit'
      version: '13'
    - regexp: '3[12]/tclwebkit'
      version: '12'
    - regexp: '30/tclwebkit'
      version: '11'
    - regexp: '29/tclwebkit'
      version: '10'
```

لكل عقدة البنية التالية:

* **`regexp`**: التعبير النمطي لهذه العقدة.
* **attributes**: سمات القاموس التي يعرّفها المستخدم (مثل `name` و`version`). قد تحتوي قيم السمات على **مراجع خلفية** إلى مجموعات الالتقاط في التعبير النمطي، وتُكتب بالشكل `\1` أو `$1` (الأرقام من 1 إلى 9). وتُستبدل هذه المراجع بمجموعة الالتقاط المطابِقة وقت تنفيذ الاستعلام.
* **child nodes**: قائمة بالعقد الفرعية، لكل منها سماتها الخاصة، وقد تحتوي أيضًا على مزيد من العقد الفرعية. اسم قائمة العقد الفرعية اختياري (مثل `versions` أعلاه). تجري مطابقة السلاسل النصية بأسلوب العمق أولًا: إذا طابقت سلسلة نصية عقدةً ما، فسيجري أيضًا التحقق من عقدها الفرعية. وتكون لسمات أعمق عقدة مطابِقة الأسبقية، فتتجاوز سمات العقدة الأصل ذات الاسم نفسه.

<div id="related-pages">
  ## الصفحات ذات الصلة
</div>

* [تخطيط القاموس regexp\_tree](/ar/reference/statements/create/dictionary/layouts/regexp-tree) — إعدادات البنية، وأمثلة على الاستعلامات، وأوضاع المطابقة
* [dictGet](/ar/reference/functions/regular-functions/ext-dict-functions#dictGet), [dictGetAll](/ar/reference/functions/regular-functions/ext-dict-functions#dictGetAll) — دوال للاستعلام عن قواميس regexp tree
