زبان عبارت جستجو

زبان عبارت جستجو، نحوی است که برای انجام جستجوهای مشکل در Google Issue Tracker استفاده می کنید. می‌توانید از زبانی در عبارت‌های جستجویی که در نوار جستجو وارد می‌کنید استفاده کنید. همچنین می‌توانید از سازنده جستجو برای انتخاب گرافیکی معیارها استفاده کنید، که پس از بسته شدن سازنده جستجو، به زبان پرس و جو تبدیل می‌شود.

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

  • کلمات کلیدی
  • فیلد: جفت ارزش

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

جستجوی کلمات کلیدی

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

  • عنوان
  • نظرات
  • نام فایل های پیوست
  • فیلدهایی که شامل کاربران هستند (مثلاً Assignee یا CC )
  • فیلدهایی که حاوی یک شماره شناسه داخلی هستند (به عنوان مثال، آنهایی که مؤلفه را مشخص می کنند یا لیست های داغ حاوی یک مشکل)
  • فیلدهایی که شامل شماره نسخه هستند
  • زمینه های سفارشی

نمونه ای از معیارهای جستجوی کلمه کلیدی configuration properties رشته است. وقتی این معیار را در یک جستجو وارد می‌کنید، Issue Tracker به صورت سراسری مسائل را در همه مؤلفه‌ها جستجو می‌کند و مواردی را که فیلدهای آنها حاوی هر دو کلمه کلیدی است، مطابق با مجوزهای کنترل دسترسی شما، برمی‌گرداند. کلمات کلیدی ممکن است در فیلدهای مختلف یا همان فیلدها باشند.

کلمات کلیدی همچنین با برخی از مترادف های اصلی مطابقت دارند، بنابراین جستجوی property ممکن است علاوه بر این، یک اشکال حاوی کلمه properties پیدا کند. در غیر این صورت، جستجوها تنها با نشانه های کلمه کامل مطابقت دارند، نه اینکه پرس و جو را به عنوان یک رشته فرعی در نظر بگیرند.

بیشتر کاراکترهای خاص قبل از انجام جستجو از کلمات کلیدی حذف می شوند. به عنوان مثال، یک پرس و جو مانند my-query_text به نشانه های my و query_text تقسیم می شود و اشکالات مطابق با هر دو نشانه را برمی گرداند.

Issue Tracker با کاراکتر space جداکننده معیارهای جستجو به عنوان یک عملگر ضمنی AND برخورد می کند. شما می توانید از علامت نقل قول ( " ) برای تعیین اینکه یک رشته چند کلمه ای به عنوان یک کلمه کلیدی در نظر گرفته شود استفاده کنید. همه جستجوها در Issue Tracker به حروف بزرگ و کوچک حساس نیستند، چه از علامت نقل قول استفاده کنید یا نه.

جستجوهای جفت فیلد: ارزش

همچنین می توانید معیارهای جستجو را به عنوان یک جفت فیلد:مقدار مشخص کنید. نحو پایه [field]:[value] است. برای فیلدهای متنی، این نحو با موضوعاتی مطابقت دارد که فیلد مشخص شده حاوی مقدار است. برای انواع دیگر فیلدها، با مسائلی مطابقت دارد که مقدار فیلد معادل است.

به عنوان مثال، جستجوی title:latency مسائل را با کلمه latency در قسمت عنوان مطابقت می دهد. جستجوی priority:p0 مسائلی را با اولویت p0 پیدا می کند.

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

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

جستجوی ارزش ویژه با استفاده از هیچ و هیچ

فیلدهای اختیاری ممکن است با مقادیر ویژه any و none پرس و جو شوند. any با هر مقدار غیر تهی مطابقت دارد. none با مقادیر null مطابقت ندارد. برای فهرستی از همه برچسب‌های فیلد پشتیبانی شده در زبان عبارت جستجو، به مرجع درخواست جستجو مراجعه کنید.

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

عملگرهای منطقی به شما این امکان را می دهند که بیش از یک معیار را مشخص کنید و رابطه بین آنها را نشان دهید. کاراکترهای فاصله خارج از علامت نقل قول به عنوان عملگرهای ضمنی AND عمل می کنند. Issue Tracker از عملگرهای منطقی صریح اضافی زیر پشتیبانی می کند:

اپراتور نماد جایگزین توضیحات مثال
و {فضای سفید} در صورتی مطابقت دارد که موضوع دارای هر دو معیار باشد star:true AND componentid:46046
یا | در صورتی مطابقت دارد که موضوع دارای یکی از معیارها باشد type:(Bug|feature_request)
نه - در صورتی مطابقت دارد که موضوع دارای معیار نباشد -assignee:jim
"..." در صورتی مطابقت دارد که موضوع حاوی عبارت نقل قول شده باشد (کلمات موجود در نقل قول به ترتیب ظاهر می شوند) comment:"We have a problem"
( ) مقادیر یا معیارهای جستجو را با هم گروه بندی می کند status:open AND (priority:(p0|p1) OR severity:(s0|s1))

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

  • شما باید از تمام حروف بزرگ برای AND ، OR و NOT استفاده کنید.

  • عملگر NOT چه قبل از نام فیلد باشد چه مقدار فیلد، معنای یکسانی دارد. این بدان معنی است که -assignee:jim و assignee:-jim معادل هستند.

  • از پرانتز برای گروه بندی واضح عبارات در عبارت جستجو استفاده کنید. به طور پیش‌فرض، Issue Tracker NOT را فقط با عبارتی که بلافاصله بعد از آن قرار می‌گیرد مرتبط می‌کند و OR با دو عبارتی که آن را در براکت قرار می‌دهند، گروه‌بندی می‌کند. به عنوان مثال، title:(a OR b NOT c AND d) معادل title:((a OR b) AND (NOT c) AND d) است.

خط تیره ها

کاراکتر خط تیره ( - ) بر اساس زمینه در یک عبارت جستجو معانی مختلفی دارد:

  • Issue Tracker خط تیره قبل از یک کلمه در جستجو را به عنوان یک عملگر NOT در نظر می گیرد. به عنوان مثال، معیارهای جستجو -assignee:none یا assignee:-none همه مسائلی را که دارای یک گیرنده هستند برمی‌گرداند.

  • Issue Tracker رشته های متصل شده توسط یک کاراکتر خط تیره را به عنوان محصور در علامت نقل قول می داند. برای مثال، معیارهای جستجوی state-of-the-art معادل "state of the art" است.

  • Issue Tracker با کلمات خط فاصله در یک قسمت شماره به عنوان کلمات مستقلی که با فضای خالی جدا شده اند رفتار می کند. این به این معنی است که اگر یک شماره کلمه state-of-the-art در عنوان خود داشته باشد و شما عبارت جستجوی title:(of art state the) یا title:("state of the art") را اجرا کنید، موضوع به عنوان بخشی از نتایج جستجو برگردانده می شود.

عملگرهای رابطه ای

نحو پایه برای معیارهای جستجوی field:value [field]:[value] است، که در آن کاراکتر کولون ( : ) مشخص می کند که فیلد داده شده باید برابر یا حاوی مقدار مشخص شده باشد تا یک مسئله در نتایج جستجو برگردانده شود.

فیلدهایی که حاوی مقدار زمانی ( created ، modified ، resolved ، verified و فیلدهای سفارشی خاص) یا مقدار شمارش ( duplicatecount ، votecount ، commentcount و cccount ) هستند از عملگرهای رابطه ای اضافی زیر پشتیبانی می کنند:

نماد توضیحات
< اگر مقدار آن کمتر یا قبل از مقدار جستجوی شما باشد، با مشکلی مطابقت دارد.
<= اگر مقدار آن کمتر از قبل، یا برابر با مقدار جستجوی شما باشد، با مشکلی مطابقت دارد.
> در صورتی که مقدار آن از مقدار جستجوی شما بیشتر باشد یا بعد از آن، با یک مشکل مطابقت دارد.
>= در صورتی که مقدار آن بزرگتر، بعد یا برابر با مقدار جستجوی شما باشد، با یک مشکل مطابقت دارد.

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

زبان پرس و جوی جستجو، نحو خاصی را برای تطبیق فیلدهایی که حاوی مقدار زمانی هستند، فراهم می کند. این به Issue Tracker اجازه می دهد تا در بازه زمانی یا زمان های نسبی در صورت لزوم جستجو کند.

قالب زمان مطلق

فرمت تعیین زمان به صورت زیر است:

[yyyy]-[MM]-[dd]T[HH]:[mm]:[ss] .

در این قالب، [yyyy] سال 4 رقمی، [MM] ماه 2 رقمی، [dd] روز 2 رقمی، [HH] ساعت 2 رقمی یک ساعت 24 ساعته، [mm] دقیقه، و [ss] دومین است. همه زمان‌ها در جستجوها به‌عنوان UTC تفسیر می‌شوند، حتی اگر منطقه زمانی متفاوتی را در تنظیمات تاریخ و زمان خود انتخاب کرده باشید.

هنگام جستجوی مسائل ایجاد شده در زمان معین، قبل یا بعد از آن، می توانید سطح خاصیت را ارائه دهید. به عنوان مثال، می‌توانید created:2014-06 برای یافتن مسائلی که هر زمانی در ژوئن 2014 ایجاد شده‌اند مشخص کنید. برای جزئیات بیشتر، می‌توانید created:2014-06-03T04 جستجو کنید تا مسائلی را که در 3 ژوئن 2014 در ساعت 4 (بین ساعت 4 و 5 صبح، UTC) ایجاد شده‌اند را بیابید.

محدوده زمانی

می توانید از دو کاراکتر نقطه ( .. ) برای تعیین محدوده زمانی در معیارهای جستجوی فیلد:مقدار استفاده کنید. نحو [field]:[start time]..[end time] است. زمان شروع و پایان می تواند هر درجه ای از ویژگی که شما می خواهید داشته باشد. به عنوان مثال، verified:2013..2015 همه مسائل تایید شده در سال های 2013، 2014 یا 2015 را برمی گرداند.

قالب زمان نسبی

همچنین می توانید زمان را بر حسب روزهای قبل از امروز مشخص کنید. برای انجام این کار، از قالب [days]d استفاده کنید، جایی که [days] تعداد روزهای گذشته است که می‌خواهید در نتایج جستجو قرار دهید. برای مثال، می‌توانید از modified:5d برای پیدا کردن مسائل اصلاح شده در پنج روز گذشته استفاده کنید.

هنگام استفاده از یک قالب زمان نسبی، اپراتور باید کاراکتر کولون : :) مانند created:5d باشد. اگر می خواهید مسائلی را پیدا کنید که در محدوده قرار نمی گیرند، می توانید از عملگر NOT یا - استفاده کنید.

به عنوان مثال، -verified:10d مسائلی را که در 10 روز گذشته تأیید نشده اند، برمی گرداند. اگر می‌خواهید مشکلاتی را پیدا کنید که تأیید شده‌اند، اما نه در 10 روز گذشته، می‌توانید از (-verified:10d) AND status:verified استفاده کنید.

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

می توانید از نشانه today در جستجوهای زمانی به عنوان جایگزینی برای تاریخ فعلی استفاده کنید. از استفاده از محاسبات روز مانند today+10 و today-2 پشتیبانی می کند. توکن today را می‌توان در محدوده‌های زمانی مانند today-2..today+3 نیز استفاده کرد. استفاده از نشانه today در جستجوهای ذخیره شده به استفاده مجدد از پرس و جو کمک می کند.

مثال ها:

  • created:today
  • modified<=today-10
  • nearestslo:today+10
  • resolved:2024-02-29..today+2
  • customfield1002:today..today+5

هشدار: همانطور که در قالب زمان مطلق ذکر شد، جستجوهای زمان در Issue Tracker به UTC هستند. همین امر در مورد جستجوهایی که today استفاده می کنند نیز صدق می کند.