جستجو کردن

  • 2021-01-24

کلمه کلیدی SEARCH ساختار زبان را برای فیلتر کردن View ها شروع می کند. از نظر مفهومی، View فقط منبع داده سند دیگری است، شبیه به یک آرایه یا یک مجموعه سند/لبه، که می توانید با استفاده از یک عملیات FOR در AQL روی آن تکرار کنید:

عملیات SEARCH اختیاری قابلیت های زیر را فراهم می کند:

  • فیلتر اسناد بر اساس عبارات و توابع Boolean AQL
  • اسناد منطبق واقع در مجموعه های مختلف با یک نمایه سریع
  • مجموعه نتایج را بر اساس میزان مطابقت هر سند با شرایط جستجو مرتب کنید

نحو

کلمه کلیدی SEARCH توسط عبارات فیلتر ArangoSearch دنبال می شود که بیشتر از فراخوانی به توابع ArangoSearch AQL تشکیل شده است.

استفاده

دستور SEARCH، بر خلاف FILTER، به عنوان بخشی از عملیات FOR در نظر گرفته می شود، نه به عنوان یک عبارت فردی. نمی توان آن را آزادانه در یک پرس و جو یا چندین بار در بدنه یک حلقه FOR قرار داد. برای . IN باید با نام یک View دنبال شود، نه یک مجموعه. عملیات SEARCH باید در مرحله بعدی دنبال شود، سایر عملیات قبل از SEARCH مانند FILTER، COLLECT و غیره در این موقعیت مجاز نیستند. عملیات بعدی پس از SEARCH و عبارت امکان پذیر است، اما از جمله SORT برای مرتب کردن نتایج جستجو بر اساس یک مقدار رتبه بندی محاسبه شده توسط View.

عبارت باید یک عبارت ArangoSearch باشد. قدرت کامل ArangoSearch از طریق توابع ویژه ArangoSearch، در طول هر دو مرحله جستجو و مرتب سازی، مهار و در معرض دید قرار می گیرد. علاوه بر این، اپراتورهای رایج AQL پشتیبانی می شوند.

توجه داشته باشید که عبارات درون خطی و چند مورد دیگر توسط SEARCH پشتیبانی نمی شوند. سرور در صورت وجود یک عبارت نامعتبر، یک خطای پرس و جو ایجاد می کند.

کلمه کلیدی OPTIONS و یک شی می توانند به صورت اختیاری عبارت جستجو را دنبال کنند تا گزینه های جستجو را تنظیم کنند.

عملگرهای منطقی

عملگرهای منطقی یا بولی به شما این امکان را می دهند که چندین شرایط جستجو را ترکیب کنید.

  • AND، && (رابط)
  • یا , ||(انفصال)
  • نه،!(نفی / وارونگی)

اولویت عملگر باید در نظر گرفته شود و با پرانتز قابل کنترل است.

عبارت ساختگی زیر را در نظر بگیرید:

doc. value< 0 OR doc.value >5 AND doc. value در [-10, 10]

AND دارای اولویت بالاتری نسبت به OR است. عبارت معادل است با:

doc. value< 0 OR (doc.value >5 AND doc. value در [-10، 10])

شرایط بدین ترتیب است:

  • مقادیر کمتر از 0
  • مقادیر بزرگتر از 5، اما فقط در صورتی که 10 باشد (ی ا-10، اما این هرگز نمی تواند برآورده شود)

برای اعمال شرط AND برای هر دو شرط OR می توان از پرانتز به صورت زیر استفاده کرد:

(doc. value< 0 OR doc.value >5) AND doc. value در [-10, 10]

شرایط الان:

  • مقادیر کمتر از 0، اما فقط در صورتی که 10- باشد
  • مقادیر بزرگتر از 5، اما فقط اگر 10 باشد

عملگرهای مقایسه

  • == (برابر)
  • >= (بزرگتر یا مساوی)
  • < (less than)
  • >(بزرگتر از)
  • != (نابرابر)
  • IN (شامل آرایه یا محدوده)، همچنین NOT IN
  • LIKE (برابر با حروف عام، معرفی شده در نسخه 3. 7. 0)، همچنین NOT LIKE

همچنین تابع IN_RANGE() را برای جایگزینی برای ترکیبی از< , , >= عملگرهای جستجوی محدوده

ترتیب حروف الفبای کاراکترها توسط ArangoSearch در نظر گرفته نمی‌شود، به‌عنوان مثال، پرس‌وجوهای محدوده در عملیات SEARCH در برابر Views از قوانین زبان مطابق با محلی تحلیل‌گر تعریف‌شده (به‌جز تحلیلگر رده‌بندی) و یا زبان سرور (گزینه راه‌اندازی - پیش‌فرض) پیروی نمی‌کنند.-زبان)!همچنین مسائل شناخته شده را ببینید.

عملگرهای مقایسه آرایه

عملگرهای مقایسه آرایه پشتیبانی می شوند (در نسخه 3. 6. 0 معرفی شده اند):

عملگرهای زیر در عبارات SEARCH معادل هستند:

  • ALL IN , ALL == , NONE != , NONE NOT IN
  • ANY IN، ANY ==
  • هیچکدام در , هیچ == , همه != , ALL NOT IN
  • ALL >، هیچ یک
  • ALL >= هیچکدام
  • همه< , NONE >=
  • همه

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

اپراتور علامت سوال

شما می توانید از اپراتور علامت سوال برای انجام جستجوهای تو در تو با Arangosearch (فقط Enterprise Edition) استفاده کنید:

این امکان را به شما می دهد تا اشیاء تو در تو را در آرایه هایی که هر یک از شرایط مختلف را برآورده می کنند ، مطابقت دهید و به صورت اختیاری تعریف کنید که چند بار این شرایط را باید برای کل آرایه برآورده کرد. شما باید با استفاده از خاصیت تو در تو در نمایش های Arangosearch یا در تعریف شاخص های معکوس که می توانید به نماهای جستجو اضافه کنید ، به طور خاص برای این نوع جستجو پیکربندی کنید.

رسیدگی به زمینه های غیر شاخص

ویژگی های اسناد که پیکربندی نشده اند که توسط یک نمای نمایه شوند ، توسط جستجو به عنوان غیر موجود رفتار می شوند. این بر آزمایشات علیه اسناد منتشر شده فقط از دیدگاه تأثیر می گذارد.

به عنوان مثال ، با توجه به مجموعه Mycol با اسناد زیر:

… با نمای Arangosearch که در آن SomeAttr با نمای زیر فهرست می شود MyView:

… جستجوی SOMEATTR نتیجه زیر را به دست می آورد:

جستجوی دیگری در یک نتیجه خالی به دست می آورد زیرا فقط someATTR توسط نمای فهرست بندی می شود:

در صورت تمایل می توانید از ویژگی های ویژه View Arangosearch از ویژگی های ویژه استفاده کنید.

با مرتب سازی جستجو کنید

اسناد منتشر شده از یک نمای می توانند با استفاده از مقادیر ویژگی با عملکرد استاندارد () با استفاده از یک یا چند ویژگی ، به ترتیب صعودی یا نزولی (یا ترکیبی از آن) طبقه بندی شوند.

اگر قسمتهای (چپ ترین) و جهت مرتب سازی آنها با تعریف مرتب سازی مرتب سازی از نمای مطابقت داشته باشد ، عملکرد مرتب سازی بهینه می شود.

جدا از مرتب سازی ساده ، می توان اسناد دید همسان را با نمره مرتبط (یا ترکیبی از نمره و مقادیر ویژگی در صورت دلخواه) مرتب کرد. جستجوی سند از طریق کلمه کلیدی جستجو و مرتب سازی از طریق توابع امتیاز دهی Arangosearch ، یعنی BM25 () و TFIDF () ، از نزدیک در هم تنیده شده اند. پرس و جو ارائه شده در عبارت جستجو نه تنها برای فیلتر کردن اسناد استفاده می شود ، بلکه با توابع امتیاز دهی نیز استفاده می شود تا تصمیم بگیرد کدام سند با بهترین پرس و جو مطابقت دارد. سایر اسناد از نظر نیز بر این تصمیم تأثیر می گذارد.

بنابراین توابع امتیاز دهی Arangosearch فقط می توانند روی اسناد منتشر شده از یک نمای کار کنند ، زیرا هم بیان جستجوی مربوطه و هم از نظر خود به منظور مرتب سازی نتایج مشاوره می شوند.

از عملکرد Boost () می توان برای تنظیم دقیق رتبه بندی حاصل با وزن دادن به زیر بیان در جستجوی متفاوت استفاده کرد.

اگر قبل از تماس با توابع به ثمر نرسد یا اینکه عبارت جستجو اسناد را فیلتر نمی کند (به عنوان مثال جستجو صحیح) ، یک عمل جستجو وجود ندارد ، نمره 0 برای همه اسناد بازگردانده می شود.

گزینه های جستجو

عملیات جستجو یک شیء گزینه ها را با ویژگی های زیر می پذیرد:

  • مجموعه ها (آرایه ، اختیاری): مجموعه ای از رشته ها با نام مجموعه برای محدود کردن جستجو به مجموعه های منبع خاص
  • شرط بندی (رشته ، اختیاری): نحوه بهینه سازی معیارهای جستجو را کنترل می کند (معرفی شده در v3. 6. 2). مقادیر ممکن:
    • "خودکار" (پیش فرض): تبدیل شرایط به فرم عادی disjunctive (DNF) و اعمال بهینه سازی. شرایط زائد یا همپوشانی را از بین می برد ، اما می تواند حتی برای تعداد کمی از شرایط تو در تو حتی مدتی طول بکشد.
    • "هیچ": بدون بهینه سازی شرایط ، شاخص را جستجو کنید.
    • "دقیق" (پیش فرض): ردیف ها در واقع برای تعداد دقیق شمارش می شوند.
    • "هزینه": از تقریب مبتنی بر هزینه استفاده می شود. ردیف ها را شمارش نمی کند و با پیچیدگی O (1) نتیجه تقریبی را برمی گرداند. اگر شرط جستجو خالی باشد یا اگر فقط یک پرس و جو واحد داشته باشد (به عنوان مثال جستجوی Doc. field == "مقدار") ، نتیجه دقیقی را ارائه می دهد ، قوام نهایی معمول دیدگاه ها را کنار بگذارید.

    مثال ها

    با توجه به دیدگاه با سه مجموعه مرتبط Coll1 ، Coll2 و Coll3 می توان اسناد را فقط از دو مجموعه اول برگردانید و با استفاده از گزینه Collections سوم را نادیده بگیرید:

    عبارت جستجو واقعی با تمام اسناد مشاهده مطابقت دارد. شما می توانید از هر عبارت معتبر در اینجا استفاده کنید ضمن محدود کردن دامنه در مجموعه های منبع انتخاب شده.

برچسب ها

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.