تم إنشاء الوثائق أدناه من جدول النظام
system.functions.alphaTokens
a-z و A-Z، ويُرجع مصفوفة من المقاطع الفرعية المستخرجة.
البنية
splitByAlpha
الوسائط
s— السلسلة النصية المراد تقسيمها.Stringmax_substrings— اختياري. عندما تكونmax_substrings > 0، لن يتجاوز عدد السلاسل الفرعية المُعادةmax_substrings، وإلا فستُعيد الدالة أكبر عدد ممكن من السلاسل الفرعية.Int64
s. Array(String)
أمثلة
مثال على الاستخدام
Query
Response
arrayStringConcat
array_to_string
الوسيطات
arr— المصفوفة المطلوب دمج عناصرها.Array(T)separator— اختياري. سلسلة الفاصل. تكون سلسلة فارغة افتراضيًا.const String
String
أمثلة
مثال على الاستخدام
Query
Response
extractAllGroupsVertical
extractAllGroups
الوسيطات
s— سلسلة الإدخال المراد الاستخراج منها.StringأوFixedStringregexp— التعبير النمطي المطلوب المطابقة عليه.const Stringأوconst FixedString
Array(Array(String))
أمثلة
مثال على الاستخدام
Query
Response
naiveBayesNgrams
NAIVE_BAYES): وضع byte أو codepoint أو token، مع حشو اختياري للحدود. استخدمه لإنشاء بيانات التدريب المجمّعة مسبقًا (ngram, class_id, count) التي يستهلكها هذا النوع من القواميس، بحيث تتطابق n-grams الخاصة بالتدريب تمامًا مع ما ينتجه naiveBayesClassifier وقت تنفيذ الاستعلام.
البنية
text— النص المراد تقسيمه إلى مقاطع n-gram.Stringn— حجم n-gram، من 1 إلى 1024.const UIntmode— وضع تقسيم النص إلى رموز: ‘byte’ أو ‘codepoint’ أو ‘token’.const Stringstart_token— اختياري. رمز حدّي يُضاف إلى بداية الإدخال (n-1) مرة؛ يكون رقمًا مع ‘byte’/‘codepoint’، أو قيمة حرفية مع ‘token’. وتعني القيمة الفارغة عدم وجود حشو.const Stringend_token— اختياري. رمز حدّي يُضاف إلى نهاية الإدخال (n-1) مرة.const String
Array(String)
أمثلة
ثنائيات الرموز
Query
Response
Query
Response
Query
Response
Query
Response
ngrams
N.
الصياغة
s— سلسلة الإدخال.StringأوFixedStringN— طول الـn-gram.const UInt8/16/32/64
n-grams. Array(String)
أمثلة
مثال على الاستخدام
Query
Response
reverseBySeparator
- reverseBySeparator(‘www.google.com’) تعيد ‘com.google.www’
- reverseBySeparator(‘a/b/c’, ’/’) تعيد ‘c/b/a’
- reverseBySeparator(‘x::y::z’, ’::’) تعيد ‘z::y::x’
string— سلسلة الإدخال المطلوب عكس ترتيب أجزائها.Stringseparator— سلسلة الفاصل المستخدمة لتحديد الأجزاء. إذا لم يتم توفيرها، فسيُستخدم ’.’ (نقطة). القيمة الافتراضية: ’.’String
String
أمثلة
عكس اسم النطاق الأساسي
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
splitByChar
separator، والتي يجب أن تتكوّن من محرف واحد تمامًا، إلى مصفوفة من السلاسل الفرعية.
قد تُحدَّد سلاسل فرعية فارغة إذا ظهر الفاصل في بداية السلسلة أو نهايتها، أو إذا وُجدت عدة فواصل متتالية.
يتحكّم الإعداد
splitby_max_substrings_includes_remaining_string (القيمة الافتراضية: 0) في ما إذا كانت السلسلة المتبقية ستُضمَّن في العنصر الأخير من مصفوفة النتيجة عندما تكون الوسيطة max_substrings > 0.- ظهور فاصل في بداية السلسلة أو نهايتها
- وجود عدة فواصل متتالية
- إذا كانت السلسلة الأصلية
sفارغة
separator— يجب أن يكون الفاصل حرفًا من بايت واحد.Strings— السلسلة المراد تقسيمها.Stringmax_substrings— اختياري. إذا كانتmax_substrings > 0، فستتضمن المصفوفة المُعادةmax_substringsمن السلاسل الفرعية كحد أقصى، وإلا فستُرجع الدالة أكبر عدد ممكن من السلاسل الفرعية. القيمة الافتراضية هي0.Int64
Array(String)
أمثلة
مثال على الاستخدام
Query
Response
splitByNonAlpha
يحدد الإعداد
splitby_max_substrings_includes_remaining_string (القيمة الافتراضية: 0) ما إذا كان سيتم تضمين السلسلة المتبقية في العنصر الأخير من مصفوفة النتائج عندما تكون الوسيطة max_substrings > 0.s— السلسلة النصية المراد تقسيمها.Stringmax_substrings— اختياري. عندما تكون قيمةmax_substrings > 0، لن يتجاوز عدد السلاسل الفرعية المُعادةmax_substrings، وإلا فستُرجِع الدالة أكبر عدد ممكن من السلاسل الفرعية. القيمة الافتراضية:0.Int64
s. Array(String)
أمثلة
مثال على الاستخدام
Query
Response
splitByRegexp
- إذا وقع تطابق غير فارغ للتعبير النمطي في بداية السلسلة أو نهايتها
- إذا وُجدت عدة تطابقات غير فارغة ومتتالية للتعبير النمطي
- إذا كانت السلسلة الأصلية فارغة بينما التعبير النمطي غير فارغ.
يحدّد الإعداد
splitby_max_substrings_includes_remaining_string (الافتراضي: 0) ما إذا كانت السلسلة المتبقية ستُدرج في العنصر الأخير من المصفوفة الناتجة عندما تكون قيمة max_substrings > 0.regexp— تعبير نمطي. ثابت.StringأوFixedStrings— السلسلة المراد تقسيمها.Stringmax_substrings— اختياري. عندما تكونmax_substrings > 0، لن يتجاوز عدد السلاسل الفرعية المُعادة القيمةmax_substrings، وإلا فستُرجع الدالة أكبر عدد ممكن من السلاسل الفرعية. القيمة الافتراضية:0.Int64
s. Array(String)
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
splitByString
separator ثابت يتكوّن من عدة أحرف إلى مصفوفة من السلاسل الفرعية.
إذا كانت السلسلة النصية separator فارغة، فسيُقسَّم النص s إلى مصفوفة من الأحرف المفردة.
قد تظهر سلاسل فرعية فارغة في الحالات التالية:
- إذا ظهر فاصل غير فارغ في بداية السلسلة النصية أو نهايتها
- إذا وُجدت عدة فواصل غير فارغة متتالية
- إذا كانت السلسلة النصية الأصلية
sفارغة وكان الفاصل غير فارغ
يتحكّم الإعداد
splitby_max_substrings_includes_remaining_string (الافتراضي: 0) في ما إذا كانت السلسلة النصية المتبقية ستُدرج في العنصر الأخير من مصفوفة النتيجة عندما تكون الوسيطة max_substrings > 0.separator— الفاصل.Strings— السلسلة النصية المراد تقسيمها.Stringmax_substrings— اختياري. عندما تكونmax_substrings > 0، لن يزيد عدد السلاسل الفرعية المُعادة عنmax_substrings، وإلا فستُعيد الدالة أكبر عدد ممكن من السلاسل الفرعية. القيمة الافتراضية:0.Int64
s Array(String)
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
splitByWhitespace
يتحكم الإعداد
splitby_max_substrings_includes_remaining_string (الافتراضي: 0) في ما إذا كان الجزء المتبقي من السلسلة النصية يُدرج في العنصر الأخير من مصفوفة النتيجة عندما تكون الوسيطة max_substrings > 0.s— السلسلة المطلوب تقسيمها.Stringmax_substrings— اختياري. عندما تكون قيمةmax_substrings > 0، لن يتجاوز عدد السلاسل الفرعية المُعادةmax_substrings، وإلا فستُعيد الدالة أكبر عدد ممكن من السلاسل الفرعية. القيمة الافتراضية:0.Int64
s. Array(String)
أمثلة
مثال على الاستخدام
Query
Response
tokens
splitByNonAlphaيقسّم السلاسل النصية عند محارف ASCII غير الأبجدية الرقمية (راجع أيضًا الدالة splitByNonAlpha).splitByString(S)يقسّم السلاسل النصية باستخدام سلاسل الفواصلSالتي يحدّدها المستخدم (راجع أيضًا الدالة splitByString). يمكن تحديد الفواصل باستخدام معلمة اختيارية، على سبيل المثال:tokens(value, 'splitByString', [', ', '; ', '\n', '\\']). لاحظ أن كل سلسلة يمكن أن تتكوّن من عدة محارف (', 'في المثال). قائمة الفواصل الافتراضية، إذا لم تُحدَّد صراحةً، هي مسافة بيضاء واحدة[' '].asciiCJKيقسّم السلاسل النصية إلى رموز باستخدام قواعد حدود الكلمات في Unicode (على غرار UAX #29). وتُشكّل محارف ASCII الأبجدية الرقمية والشرطات السفلية رموزًا مع الموصلات (:للحروف، و.و'للمحارف من النوع نفسه). أما محارف Unicode غير التابعة لـ ASCII فتتحول إلى رموز من محرف واحد.chineseيقسّم النص الصيني إلى كلمات باستخدام قاموس ونموذج ماركوف مخفي (تتبع الخوارزمية jieba؛ وتُشتق بيانات القاموس والنموذج المضمّنة من cppjieba). وعلى خلافasciiCJK، الذي يعامل كل محرف غير تابع لـ ASCII كرمز من محرف واحد، يجمعchineseالمحارف الصينية المتتالية في كلمات، مما ينتج رموزًا أكثر معنى وجودة بحث أعلى للنص الصيني. تكون وسيطةgranularityالاختيارية إماcoarse_grained(الافتراضي) أوfine_grained؛ ويقوم الأخير أيضًا بتعداد الكلمات الفرعية المتداخلة، مما يحسّن الاستدعاء على حساب فهرس أكبر.icu(locale)يقسّم السلاسل النصية إلى رموز كلمات باستخدام تجزئة كلمات Unicode في مكتبة ICU (UAX #29). بالنسبة إلى أنظمة الكتابة التي لا تستخدم مسافات بيضاء بين الكلمات (مثل الصينية واليابانية والتايلاندية)، تطبّق ICU تجزئة قائمة على القاموس، لذا يُقسَّم هذا النص إلى كلمات ذات معنى. تمثلlocaleالإعدادات المحلية لـ ICU التي تُمرَّر إلى المُقسِّم (يعتمد التقسيم أساسًا على نظام الكتابة والقاموس؛ وتحدد الإعدادات المحلية التخصيصات الخاصة بالإعدادات المحلية في ICU)؛ وهي إلزامية وتُمرَّر كمعامل منفصل، على سبيل المثال:tokens(value, 'icu', 'ja').japaneseيقسّم النص الياباني إلى كلمات باستخدام المحلل الصرفي MeCab. يتطلب قاموسًا مُعدًا في تكوين الخادم (راجع وثائق فهرس النص).ngrams(N)يقسّم السلاسل النصية إلى n-grams متساوية الحجم (راجع أيضًا الدالة ngrams). يمكن تحديد طول ngram باستخدام معلمة عددية صحيحة اختيارية بين 1 و8، على سبيل المثال:tokens(value, 'ngrams', 3). حجم ngram الافتراضي، إذا لم يُحدَّد صراحةً، هو 3.sparseGrams(min_length, max_length, min_cutoff_length)يقسّم السلاسل النصية إلى n-grams متغيرة الطول لا يقل طولها عنmin_lengthولا يزيد عنmax_length(شاملًا) من المحارف (راجع أيضًا الدالة sparseGrams). ما لم يُحدَّد ذلك صراحةً، تكون القيمتان الافتراضيتان لـmin_lengthوmax_lengthهما 3 و100. وإذا تم تمرير المعلمةmin_cutoff_length، فستُعاد فقط n-grams التي يكون طولها أكبر من أو مساويًا لـmin_cutoff_length. وبالمقارنة معngrams(N)، ينتج مُقسِّم الرموزsparseGramsN-grams متغيرة الطول، مما يتيح تمثيلًا أكثر مرونة للنص الأصلي. على سبيل المثال،tokens(value, 'sparseGrams', 3, 5, 4)يُنشئ داخليًا 3- و4- و5-grams من سلسلة الإدخال، ولكن لا تُعاد إلا 4- و5-grams.arrayلا يُجري أي تقسيم النص إلى رموز، أي إن قيمة كل row تُعد رمزًا (راجع أيضًا الدالة array).
splitByString، إذا كانت الرموز لا تشكّل prefix code، فغالبًا ما ستحتاج إلى أن تُفضِّل المطابقة الفواصل الأطول أولًا.
وللقيام بذلك، مرّر الفواصل بترتيب تنازلي حسب الطول.
على سبيل المثال، مع separators = ['%21', '%'] فإن السلسلة %21abc ستُقسَّم إلى رموز على النحو ['abc']، بينما separators = ['%', '%21'] ستُقسَّم إلى ['21ac'] (وهو على الأرجح ليس ما أردته).
بناء الجملة
value— سلسلة الإدخال.StringأوFixedStringtokenizer— مُقسِّم الرموز المراد استخدامه. الوسيطات الصالحة هيsplitByNonAlphaوsplitByStringوasciiCJKوchineseوicuوjapaneseوngramsوsparseGramsوarray. هذا الوسيط اختياري، وإذا لم يُحدَّد صراحةً، فالقيمة الافتراضية هيsplitByNonAlpha.const Stringlocale— ينطبق فقط إذا كانت الوسيطةtokenizerهيicu: الإعدادات المحلية الإلزامية، مثل'ja'.const Stringn— ينطبق فقط إذا كانت الوسيطةtokenizerهيngrams: معلمة اختيارية تحدد طول الـ ngrams. إذا لم تُحدَّد صراحةً، فالقيمة الافتراضية هي3.const UInt8separators— ينطبق فقط إذا كانت الوسيطةtokenizerهيsplit: معلمة اختيارية تحدد سلاسل الفواصل. إذا لم تُحدَّد صراحةً، فالقيمة الافتراضية هي[' '].const Array(String)min_length— ينطبق فقط إذا كانت الوسيطةtokenizerهيsparseGrams: معلمة اختيارية تحدد الحد الأدنى لطول الـ gram، والقيمة الافتراضية هي 3.const UInt8max_length— ينطبق فقط إذا كانت الوسيطةtokenizerهيsparseGrams: معلمة اختيارية تحدد الحد الأقصى لطول الـ gram، والقيمة الافتراضية هي 100.const UInt8min_cutoff_length— ينطبق فقط إذا كانت الوسيطةtokenizerهيsparseGrams: معلمة اختيارية تحدد الحد الأدنى لطول القطع.const UInt8granularity— ينطبق فقط إذا كانت الوسيطةtokenizerهيchinese: معلمة اختيارية، إماcoarse_grained(الافتراضية) أوfine_grained، تتحكم في دقة التقسيم.const String
Array
أمثلة
مُقسِّم الرموز الافتراضي
Query
Response
Query
Response
tokensForLikePattern
tokens، فإن هذه الدالة تراعي دلالات نمط LIKE
(مثل محارف البدل في البداية والنهاية)، وتطبّق قواعد خاصة بكل مُقسِّم الرموز
لاستخراج رموز ذات معنى لأغراض Pattern matching.
وهي تدعم مجموعات الوسائط نفسها التي تدعمها الدالة tokens، مع بعض
الاستثناءات: مُقسِّما الرموز chinese وicu غير مدعومين هنا.
لا يكون تقسيم النص إلى رموز لأنماط LIKE ذا معنى إلا لمُقسِّمات الرموز التي
تختار صراحةً دعم دلالات LIKE (supportsStringLike()). يؤدي استدعاء
tokensForLikePattern باستخدام مُقسِّم رموز غير مدعوم إلى ظهور BAD_ARGUMENTS؛
استخدم tokens العادية بدلًا من ذلك.
تُفسَّر الوسائط الإضافية بعد tokenizer وفقًا للـ مُقسِّم الرموز
المحدد (على سبيل المثال، n من أجل ngrams، وseparators من أجل
splitByString، وmin_length / max_length [/ min_cutoff_length]
من أجل sparseGrams).
هذه الدالة مخصّصة أساسًا لأغراض تصحيح الأخطاء والاختبار،
وتُستخدم داخليًا لتحليل سلوك تقسيم النص إلى رموز لأنماط LIKE.
بناء الجملة
value— سلسلة الإدخال.StringأوFixedStringtokenizer— مُقسِّم الرموز المراد استخدامه. الوسيطات الصالحة هيsplitByNonAlphaوsplitByStringوasciiCJKوngramsوsparseGramsوarray. هذا الوسيط اختياري، وإذا لم يُحدَّد صراحةً، فستكون القيمة الافتراضيةsplitByNonAlpha.const Stringlocale— يكون ذا صلة فقط إذا كانت الوسيطةtokenizerهيicu: الإعدادات المحلية الإلزامية، مثل'ja'.const Stringn— يكون ذا صلة فقط إذا كانت الوسيطةtokenizerهيngrams: معلمة اختيارية تحدد طول ngrams. إذا لم تُحدَّد صراحةً، فستكون القيمة الافتراضية3.const UInt8separators— يكون ذا صلة فقط إذا كانت الوسيطةtokenizerهيsplit: معلمة اختيارية تحدد سلاسل الفواصل. إذا لم تُحدَّد صراحةً، فستكون القيمة الافتراضية[' '].const Array(String)min_length— يكون ذا صلة فقط إذا كانت الوسيطةtokenizerهيsparseGrams: معلمة اختيارية تحدد الحد الأدنى لطول gram، والقيمة الافتراضية هي 3.const UInt8max_length— يكون ذا صلة فقط إذا كانت الوسيطةtokenizerهيsparseGrams: معلمة اختيارية تحدد الحد الأقصى لطول gram، والقيمة الافتراضية هي 100.const UInt8min_cutoff_length— يكون ذا صلة فقط إذا كانت الوسيطةtokenizerهيsparseGrams: معلمة اختيارية تحدد الحد الأدنى لطول القطع.const UInt8granularity— يكون ذا صلة فقط إذا كانت الوسيطةtokenizerهيchinese: معلمة اختيارية، إماcoarse_grained(الافتراضي) أوfine_grained، تتحكم في دقة التقسيم.const String
Array
أمثلة
مُقسِّم الرموز الافتراضي
Query
Response