English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
عند معالجة الاستعلام أثناء عملية البحث، يقوم وحدة التحليل بتحليل محتويات أي فهرس. تتكون الوحدة من محول، ومولد العلامات، ومزيل العلامات، ومزيل الحروف.
في المثال التالي، نستخدم محول قياسية، الذي يتم استخدامه افتراضياً عند عدم تحديد محول آخر. سيقوم بتحليل الجملة بناءً على الجملة، وسيقوم بإنشاء الكلمات المستخدمة في الجملة.
POST _analyze { "analyzer": "standard", "text": "Today's weather is beautiful" }
بعد تنفيذ الكود أعلاه، نحصل على الاستجابة التالية كما هو موضح:
{ "tokens": [ { "token": "اليوم's", "start_offset": 0, "end_offset" : 7, "type" : "", "position": 0 }, { "token": "weather", "end_offset" : 15, "type" : "", "position": 1 }, { "token": "is", "start_offset": 16, "end_offset": 18, "type" : "", "position": 2 }, { "token": "beautiful", "start_offset": 19, "end_offset" : 28, "type" : "", "position": 3 } ] }
يمكننا استخدام مجموعة متنوعة من المعلمات لتعديل محول القياسية للحصول على متطلباتنا المخصصة.
في المثال التالي، سنقوم بضبط محول القياسية لتكون طول الحرف الأقصى 5.
لذلك، نبدأ أولاً بإنشاء فهرس باستخدام مكون max_length_token للمفسر.
PUT index_4_analysis { "settings": { "analysis": { "analyzer": { "my_english_analyzer": { "max_token_length": 5, "stopwords": "_english_" } } } } }
ثم، نستخدم النص التالي للتطبيق على المفسر. يرجى ملاحظة أن التمثيل لا يتم عرضه، لأنه يحتوي على فراغين في البداية وفراغين في النهاية. بالنسبة لـ" كلمة "is"، التي تبدأ بفضاء، وتنتهي بفضاء. إذا تم استخراجها، تصبح أربعة أحرف مسبوقة بالفراغ، لا يعني ذلك أنها كلمة. على الأقل يجب أن يكون هناك رمز غير فراغ في البداية أو النهاية لجعلها كلمة.
POST index_4_analysis/_analyze { "analyzer": "my_english_analyzer", "text": "Today's weather is beautiful" }
بعد تنفيذ الكود أعلاه، نحصل على الاستجابة التالية كما هو موضح:
{ "tokens": [ { "start_offset": 0, "end_offset" : 5, "type" : "", "position": 0 }, { "end_offset" : 7, "type" : "", "position": 1 }, { "end_offset" : 13, "type" : "", "position": 2 }, { "end_offset" : 15, "type" : "", "position": 3 }, { "start_offset": 19, "end_offset" : 24, "type" : "", "position": 5 }, { "end_offset" : 28, "type" : "", "position": 6 } ] }
تقوم الجدول أدناه بقائمة مفسرات مختلفة وشرحها-
رقم | مفسرات والشرح |
---|---|
1 | مفسر معياري (standard) يمكن ضبط stopwords و max_token_length لهذا المفسر. افتراضياً، تكون قائمة stopwords فارغة، ويكون max_token_length 255. |
2 | مفسر بسيط (simple) يُمثل هذا المفسر بمكون tokenizer صغير. |
3 | مفسر الفراغات (whitespace) يكون هذا المحدد مكونًا من علامات الفراغات |
4 | محدد التوقف (stop) يمكن تكوين stopwords و stopwords_path. في الوضع الافتراضي، يتم تعيين stopwords إلى الكلمات الإنجليزية العادية، ويتضمن stopwords_path مسار ملف النص الذي يحتوي على الكلمات العادمة. |
يستخدم محدد الرموز لإنشاء الرموز من النص في Elasticsearch. يمكن تقسيم النص إلى علامات من خلال النظر في الفراغات أو العلامات البديلة. يحتوي Elasticsearch على العديد من محددات الرموز المدمجة التي يمكن استخدامها في تحليلات مخصصة.
ما يلي عرض لمحددات التقطيع، حيث يقوم المحدد بتقسيم النص إلى كلمات عند مواجهة حرف غير حجري، ولكن سيقوم أيضًا بتقليل حجم الكلمات، كما هو موضح أدناه-
POST _analyze { "tokenizer": "lowercase", "text": "It Was a Beautiful Weather 5 Days ago." }
بعد تنفيذ الكود أعلاه، نحصل على الاستجابة التالية كما هو موضح:
{ "tokens": [ { "token": "it", "start_offset": 0, "end_offset": 2, "type": "word", "position": 0 }, { "token": "was", "start_offset": 3, "end_offset": 6, "type": "word", "position": 1 }, { "token": "a", "start_offset": 7, "end_offset": 8, "type": "word", "position": 2 }, { "token": "beautiful", "start_offset": 9, "end_offset": 18, "type": "word", "position": 3 }, { "token": "weather", "start_offset": 19, "end_offset": 26, "type": "word", "position": 4 }, { "token": "days", "start_offset": 29, "end_offset": 33, "type": "word", "position": 5 }, { "token": "ago", "start_offset": 34, "end_offset": 37, "type": "word", "position": 6 } ] }
قائمة محددات إنشاء الرموز مع الشرح كما هو موضح في الجدول التالي:
رقم | مزج التقطيع والشرح |
---|---|
1 | مؤشر المعيار (standard) يتم بناؤه على مؤشرات اللغة الأساسية، يمكن تكوين max_token_length لهذا المؤشر. |
2 | مؤشر NGram على الحافة(edgeNGram) يمكن لتلك الإعدادات مثل min_gram، max_gram، token_chars تعيين هذا المؤشر. |
3 | مؤشر الكلمة الرئيسية (keyword) سيقوم هذا بإنشاء الإدخال بأكمله كخرج، يمكن تعيين buffer_size لهذا. |
4 | مؤشر الحرف (letter) سيقوم هذا بالتقاطع الكلمة بأكملها حتى يلتقي بنوع غير حرفي. |