OpenSearch نمایش داده شد: پرس و جو DSL و فراتر از آن

ساخت وبلاگ

OpenSearch Queries

OpenSearch از زمان چنگال خود از کد منبع آخرین نسخه منبع باز Elasticsearch به سرعت تکامل یافته است.

تاکنون ، کار جامعه بر حذف کد اختصاصی از الاستیک متمرکز شده است ، از جمله تعدادی از مواردی که هرگز خود منبع باز نبودند. اینها شامل برخی از جنبه های زبانهای پرس و جو و قابلیت های Elasticsearch است. اما با توجه به تعهد OpenSearch به بودن ، خوب ، باز ، تلاش شده است تا آن عناصر پشته الک را با چیز جدیدی جایگزین کنیم.

در نتیجه ، پرس و جوهای OpenSearch هم اکنون بسیار آشنا به نظر می رسند و همچنین نسبتاً بی نظیر هستند. عناصر جدیدی وجود دارد که علاوه بر حمل از Lucene و Query DSL ، در مورد آنها صحبت می شود. برای کسب اطلاعات بیشتر در مورد این موارد ، به معرفی ما در نمایش داده های Elasticsearch نگاه کنید.

برای مبتدیان ، زبان اصلی برای نمایش داده های OpenSearch Query DSL است. با این حال ، دو افزونه نیز وجود دارد که به شما امکان می دهد از دو زبان پرس و جو دیگر استفاده کنید: SQL و PPL (زبان پردازش لوله کشی).

PPL توسط AWS برای Distro Open برای Elasticsearch ایجاد شده است. همانطور که اکنون Distro Open وارد OpenSearch می شود ، ابزار PPL ذاتاً با برنامه های OpenSearch در هم تنیده است.

انواع داده ها و معادل ها: پرس و جو DSL ، PPL ، SQL

OpenSearch شامل Workbench پرس و جو (در داشبورد OpenSearch) است ، جایی که می توانید از طریق افزونه ها به SQL یا PPL تغییر دهید ، SQL را برای استراحت و همچنین داده های پرس و جو در UI Dashboards OpenSearch ترجمه کنید. همچنین می توانید داده ها را در قالب های CSV ، JSON ، TEXT ، CONNITIVE DATABASE JAVA (JDBC) و اتصال به پایگاه داده باز (ODBC) بارگیری کنید.

میز کار پرس و جو در واقع بخشی از افزونه SQL است که در زیر با جزئیات بیشتر در مورد آنها بحث خواهیم کرد.

جدول زیر سه نوع اصلی زبان پرس و جو را در OpenSearch مقایسه می کند:

[از https://opensearch. org/docs/search-plugins/ppl/datatypes/]

نوع ppl نوع OpenSearch نوع SQL
بولی بولی بولی
بایت بایت ریزه
بایت کوتاه کوچک
عدد صحیح عدد صحیح عدد صحیح
طولانی طولانی با ابله
شناور شناور واقعی
شناور نیمی از فلور شناور
شناور scaled_float دو برابر
دو برابر دو برابر دو برابر
رشته کلمه کلیدی چرب
متن متن چرب
زمان سنج تاریخ زمان سنج
ip ip چرب
زمان سنج تاریخ زمان سنج
دودویی دودویی وابسته به لاکونی
ساختار هدف - شی ساختار
آرایه تو در تو ساختار

پرس و جو DSL در OpenSearch

اسناد OpenSearch پرس و جو DSL را به سه دسته تقسیم می کند: نمایش داده شدگان متن کامل ، نمایش داده های سطح مدت و نمایش داده های بولی. ما DSL را به طور گسترده در مقدمه نمایش داده های Elasticsearch خود پوشانده ایم. در اینجا ، کافی است بگوییم که پوشش داده های بولی باید ، باید ، باید و درخواست های فیلتر را فیلتر کند. بیایید جزئیات کمی بیشتر در مورد دو دسته دیگر برویم:

نمایش داده شد

نمایش داده های سطح مدت از لیست زیر گزینه ها تشکیل شده است: اصطلاح ، اصطلاحات ، شناسه ها ، دامنه ، پیشوند ، وجود ، Wildcard و Regexp. می توانید نمونه هایی را برای جستجوی جستجوی سطح DSL در آموزش پرس و جو Elasticsearch ما پیدا کنید. در اینجا مثالی از پیشوند آورده شده است:

پیشوند

این پرس و جو به دنبال هرگونه بازدید با پیشوند مشخص شده است:

شکسپیر را دریافت کنید/_search<"query":Hello <"prefix": <"speaker": "KING">>> 

نمایش داده شد

نمایش داده های متن کامل OpenSearch کمی گسترده تر است و گزینه های زیادی را پوشش می دهد. این لیست شامل مطابقت ، multi_match ، match_phrase ، match_phrase_prefix ، match_bool_prefix ، مشترک ، query_string ، simple_query_string ، match_all و match_none است.

همچنین تعدادی پارامترهای پرس و جو اختیاری برای نمایش داده های OpenSearch کامل وجود دارد:

به عنوان مثال فازی را بگیرید.

فازی به پرس و جو در مورد چگونگی انعطاف پذیری در جستجوی مقادیر می پردازد. این امر برای بازگرداندن آن به پرس و جو اصلی ، محدودیت ویرایش ها را به نتیجه می رساند. به عنوان مثال ، برای رسیدن به "بیابان" به "دسر" 1 شخصیت تغییر می کند. این تغییرات می تواند حذف ، درج یا تعویض باشد (بنابراین شما می توانید یک سوئیچ نامه را به عنوان یک ویرایش واحد حساب کنید ، نه 2 با حذف و درج). تنظیمات می تواند شامل مقادیر خودکار ، 1 یا هر مقدار مثبت دیگر باشد.

دریافت _search

این تعداد ویرایش های کاراکتر را نشان می دهد (درج ، حذف ، جایگزین) که هنگام تعیین اینکه آیا یک اصطلاح با یک مقدار مشخص مطابقت دارد ، یک کلمه را به دیگری تغییر می دهد. به عنوان مثال ، فاصله بین شراب و باد 1 است. پیش فرض ، خودکار ، براساس طول هر اصطلاح مقداری را انتخاب می کند و برای اکثر موارد استفاده انتخاب خوبی است.<"query": <"match": <"title": <"query": "desert", "fuzziness": "AUTO",>>>> 

نمایش داده ها و نحو زبان پردازش لوله (PPL)

OpenSearch از OpenDistro برای Elasticsearch زبان پردازش لوله ای (PPL) را حمل می کند. نحو از نشانگر لوله (|) برای جدا کردن دستورات پرس و جو استفاده می کند. انتشار این پلتفرم با یک PPL CLI ساخته شده و همچنین راهی برای ذخیره JSON یا نتایج متن ارائه شده است.

همچنین فقط چند دستور برای استفاده با زبان وجود دارد.

همچنین فقط چند دستور برای استفاده با زبان وجود دارد.

همچنین فقط چند دستور برای استفاده با زبان وجود دارد.

نحو با دستور جستجو شروع می شود و به دنبال آن منبع و هرگونه عبارات دیگری که باید اضافه کنید:

[برخی از بیان بول]

search source=>دستور جستجو 1 |فرمان 2 |فرمان 3
سر

All the following queries are placed after the first clause and pipe: search source=> |

این یک نکته بسیار مهم است: تعداد نتایج مورد نظر خود را مشخص کنید:

منبع جستجو = رای دهندگان |State Fields |سر 5

فرفری

این ویژگی مهم - Deduplication Data - اسناد تکراری را از نتایج حذف می کند (هنگامی که آنها برای زمینه های مختلف ارائه می شوند).

پارامتر نگهدارنده به پرس و جو می گوید تا نتایج را با زمینه های خالی حفظ کند.

dedup [int]> [keepempty=>] [consecutive=>]

همچنین می توانید چندین زمینه را همزمان وارد کنید:

منبع جستجو = رای دهندگان |Dedup 3 Age Cavements = true |زمینه های سن ، ایالت ، شماره تلفن ؛

سن
حالت شماره تلفن 555-1235
87 NJ 555-2347
87 PA 555-3467
87 CT 555-7654
86 NJ 555-9876
86 NY 555-8642
86 NC ارزیابی

Query Eval ریاضی سریع از نتایج شما را ایجاد می کند. یک عبارت را در پرس و جو بر اساس نتایج بازده وارد کنید. نتایج نهایی شامل پاسخ به عبارت خواهد بود.

در این مثال ، فرض کنید که از شش ماه پیش (5. 5 سال) به داده های مربوط به انتخابات نگاه می کنید. به دلایلی ، شما می خواهید سنین را در نتایج به روز کنید تا معاصر باشد:

منبع جستجو = رای دهندگان |ارزیابی سن = سن + . 5 |سن مزارع ؛

زمینه های

زمینه ها را با استفاده از + یا - نمادها اضافه یا حذف کنید:

منبع جستجو = رای دهندگان |زمینه های سن ، ایالت ، شهر |زمینه ها - دولت ؛

نام بردن

برای نمایش یک نتیجه خاص با یک برچسب جایگزین ، از تغییر نام برای تغییر نحوه نمایش نتایج یک فیلد استفاده کنید. در این مثال ، این زمینه به طور تصادفی به جای حزب به عنوان جمهوریخواه نامگذاری شد (جمهوری خواه یکی از ارزش ها است). برای اصلاح خطا:

منبع جستجو = نامزدها |تغییر نام جمهوری به عنوان حزب |حزب زمینه ها ؛

مرتب سازی

این نتیجه را در یک قسمت تعریف شده یا به ترتیب صعودی (پیش فرض) یا نزولی (مشخص شده توسط -) مرتب می کند

منبع جستجو = نامزدها |سن مرتب سازی |مزارع سن ، حزب ، ایالتی ، شهر ، دفتر ؛

سن
مهمانی - جشن حالت شهر دفتر جمهوریخواه
35 نیوبرانزویک NJ شهردار دموکرات
47 نیوبرانزویک NJ شهردار دموکرات
52 نیوبرانزویک NJ شهردار دموکرات
67 نیوبرانزویک NJ شهردار دموکرات
سن
مهمانی - جشن حالت شهر دفتر جمهوریخواه
67 نیوبرانزویک NJ شهردار دموکرات
52 نیوبرانزویک NJ شهردار دموکرات
47 نیوبرانزویک NJ شهردار دموکرات
35 نیوبرانزویک NJ شهردار دموکرات

منبع جستجو=نامزدها |مرتب سازی + سن - جنس |زمینه های سن، جنس، حزب، ایالت، شهر، اداره.

سن
مهمانی - جشن مهمانی - جشن حالت شهر دفتر جمهوریخواه
43 M پارک هایلند NJ شهردار دموکرات
44 M پارک هایلند NJ شهردار دموکرات
47 F پارک هایلند NJ شهردار دموکرات
75 F پارک هایلند NJ شهردار دموکرات

آمار را با استفاده از پنج تابع اختیاری محاسبه کنید: AVG، MAX، MIN، SUM، COUNT. مثال زیر بالاترین 5 میانگین سنی رای دهندگان را در بین 50 ایالت ایالات متحده نشان می دهد:

منبع جستجو=رای دهندگان |آمار میانگین (سن) بر اساس ایالت.|سر 5;

حالت
شماره تلفن فلوریدا
55. 70 کالیفرنیا
53. 33 آریزونا
52. 89 نیویورک
49. 25 یوتا
48. 00 جایی که

نتایج را با مقادیر بسیار خاص محدود کنید:

منبع جستجو=نامزدها |جایی که حزب=جمهوری و جنسیت=”F” |زمینه ها حزب، جنسیت;

نادر

کمترین مقادیر رایج را از یک لیست مشخص از فیلدها با پرس و جو نادر پیدا کنید.

منبع جستجو=نامزدها |سن نادر بر اساس مهمانی |زمینه سن، حزب;

سن

 

حالت جمهوری خواه
17 نیوبرانزویک
104 نیوبرانزویک

رایج ترین فیلدها را در یک لیست پیدا می کند که نتیجه برتر بیشترین بازدید را دارد:

منبع جستجو=رای دهندگان |5 سن بالا بر اساس ایالت

top N>>
سن

 

حالت شماره تلفن
85 55. 70
84 55. 70
84 53. 33
83 فلوریدا
83 55. 70

پلاگین OpenSearch SQL از پرس و جوهای پیچیده SQL پشتیبانی می کند که شامل مواردی مانند JOIN ها، سوالات فرعی و موارد دیگر است. از Query Workbench در داشبوردهای OpenSearch، یک SQL CLI و سایر توابع پشتیبانی می کند.

ترتیب عملیات از این طرح نحوی (کامل) پیروی می کند:

[این [نه] تهی است] [ASC |DESC] [،.]] [LIMIT [تغییر، ] اندازه];

SELECT [DISTINCT] (* | expression) [[AS] alias] [, . ] FROM index_or_table_name [WHERE predicates] [GROUP BY> [, . ] [HAVING predicates]] [ORDER BY>خلاصه

این پست شامل یک نمای کلی از جستارهای OpenSearch است که برخی از تفاوت ها را با Elasticsearch (که بر Query DSL متکی است) برجسته می کند، و همچنین اطلاعات بیشتری را در مورد زبان پردازش لوله ای ارائه می کند که منشأ Open Distro آن را به یک جزء حیاتی در AWS-Spearhead تبدیل می کند. پروژه OpenSearch

برای دریافت اطلاعات بیشتر درباره OpenSearch، پرس و جوها و موارد مشابه در وبلاگ مشترک شوید.

 

آموزش تحلیل گری...
ما را در سایت آموزش تحلیل گری دنبال می کنید

برچسب : نویسنده : ملیکا زارعی بازدید : 39 تاريخ : دوشنبه 13 شهريور 1402 ساعت: 17:23