البحث في ClickStack وElastic
argMax وhistogram وquantileTiming، ما يسهّل الاستعلام عن السجلات المنظَّمة والمقاييس والتتبعات.
لاستكشاف السجلات والتتبعات البسيطة، توفّر واجهة ClickStack UI (HyperDX) صياغة بأسلوب Lucene لتصفية نصية سهلة وبديهية لاستعلامات الحقل-القيمة، والنطاقات، وأحرف البدل، وغير ذلك. وهذا مماثل لـ صياغة Lucene في Elasticsearch وبعض عناصر Kibana Query Language.
تدعم واجهة البحث هذه الصياغة المألوفة، لكنها تترجمها في الخلفية إلى عبارات SQL WHERE فعّالة، مما يجعل التجربة مألوفة لمستخدمي Kibana مع إتاحة الاستفادة من قوة SQL عند الحاجة. ويتيح لك ذلك الاستفادة من المجموعة الكاملة من دوال البحث في السلاسل النصية ودوال التشابه ودوال التاريخ والوقت في ClickHouse.
فيما يلي، نقارن بين لغات استعلام Lucene في ClickStack وElasticsearch.
صياغة البحث في ClickStack مقابل query string في Elasticsearch
query string في Elasticsearch مدمجة بإحكام مع DSL ومحرك الفهرسة الخاص به، يدعم ClickStack صياغة مستوحاة من Lucene تُترجم داخليًا إلى ClickHouse SQL. يوضّح الجدول أدناه كيفية تعامل النظامين مع أنماط البحث الشائعة، مع إبراز أوجه التشابه في الصياغة والاختلافات في التنفيذ في الجهة الخلفية.
اختلافات الوجود/الفقدان
- بالنسبة إلى الحقول
Nullable، فستُضبط قيمته علىNULL. - بالنسبة إلى الحقول غير القابلة لأن تكون
NULL(وهو الخيار الافتراضي)، فستُملأ بقيمة افتراضية (غالبًا سلسلة فارغة أو 0 أو ما يعادل ذلك).
Nullable غير موصى به.
ويعني هذا السلوك أن التحقق مما إذا كان الحقل “موجودًا” بالمعنى المقصود في Elasticsearch ليس مدعومًا بشكل مباشر.
بدلًا من ذلك، يمكنك استخدام field:* أو field != '' للتحقق من وجود قيمة غير فارغة. لذلك لا يمكن التمييز بين الحقول المفقودة فعليًا والحقول الفارغة صراحةً.
عمليًا، نادرًا ما يسبب هذا الاختلاف مشكلات في حالات استخدام الرصد، لكن من المهم أخذه في الاعتبار عند ترجمة الاستعلامات بين الأنظمة.