שפת שאילתת החיפוש

השפה של שאילתת החיפוש היא התחביר שבו משתמשים לביצוע חיפושי בעיות בכלי למעקב אחר בעיות ב-Google. אפשר להשתמש בשפה של שאילתות החיפוש שמזינים בסרגל החיפוש. אפשר גם להשתמש בכלי ליצירת חיפושים כדי לבחור באופן גרפי את הקריטריונים, ולאחר מכן להמיר את הקריטריונים לשפת השאילתות כשכלי ליצירת חיפושים סגור.

בשפת השאילתות אפשר לחפש לפי הקריטריונים הבאים:

  • מילות מפתח
  • צמדי שדה/ערך

החיפושים שמבצעים יכולים לכלול קריטריונים מרובים, כולל שילוב של מילות מפתח וצמדי שדה/ערך. התחביר של שפת השאילתות מאפשר לציין את הקשר ואת הסדר שבו הקריטריונים נלקחים בחשבון באמצעות אופרטורים לוגיים, סוגריים ומירכאות.

חיפושים של מילות מפתח

מילות מפתח הן מחרוזות טקסט שניתן להשתמש בהן כדי לחפש בשדות מסוימים בבעיות. השדות הבאים הם:

  • שם הסרטון
  • תגובות
  • שמות הקבצים המצורפים
  • שדות שמכילים משתמשים (לדוגמה, מקבל ההקצאה או עותק)
  • שדות שמכילים מספר מזהה פנימי (לדוגמה, אלה שמציינים את הרכיב או את הרשימות החמות שמכילות את הבעיה)
  • שדות שמכילים מספרי גרסאות
  • שדות מותאמים אישית

דוגמה לקריטריונים לחיפוש של מילת מפתח היא המחרוזת configuration properties. כשמזינים את הקריטריונים האלה בחיפוש, ב-Issue tracker מתבצע חיפוש גלובלי של בעיות בכל הרכיבים, ומחזיר את אלה שהשדות שלמעלה מכילים את שתי מילות המפתח, בהתאם להרשאות של בקרת הגישה. מילות המפתח יכולות להיות בשדות שונים או באותם שדות.

כשמשתמשים במעקב בעיות, המערכת מתייחסת לתו הרווח שמפריד בין קריטריוני חיפוש כאופרטור מרומז AND. אפשר להשתמש במירכאות (") כדי לציין שמחרוזת מרובת מילים תיחשב כמילת מפתח יחידה. כל החיפושים ב'מעקב אחר בעיות' הם לא תלויי-רישיות, גם אם לא משתמשים במירכאות.

חיפושים בזוגות של שדה/ערך

תוכלו גם לציין קריטריוני חיפוש כצמד של שדה/ערך. התחביר הבסיסי הוא [field]:[value]. בשדות טקסט, התחביר הזה תואם לבעיות שבהן השדה שצוין מכיל את הערך. בסוגים אחרים של שדות, הוא תואם לבעיות שבהן ערך השדה הוא שווה ערך.

לדוגמה, חיפוש של title:latency תואם לבעיות במילה latency בשדה Title. בחיפוש של priority:p0 יוצגו בעיות בעדיפות p0.

שימו לב שבשדות של זמן וספירה אפשר להשתמש בסמלים קשורים אחרים מלבד תו הנקודתיים. עיינו בקטע אופרטורים יחסיים שבהמשך.

חיפושים עם ערך מיוחד באמצעות כל אפשרות או ללא

ניתן לשלוח שאילתות לשדות אופציונליים עם הערכים המיוחדים any ו-none. any תואם לכל ערך שאינו null. none תואם לערכים אפסיים. בחומר העזר בנושא שאילתות חיפוש תוכלו למצוא רשימה של כל תוויות השדות הנתמכות בשפה של שאילתות החיפוש.

אופרטורים לוגיים

אופרטורים לוגיים מאפשרים לציין יותר מקריטריון אחד ולציין את הקשר ביניהם. כפי שצוין למעלה, תווי רווח מחוץ למירכאות פועלים כאופרטורים משתמעים של AND. הכלי למעקב אחר בעיות תומך באופרטורים הלוגיים הבאים המפורשים הבאים:

מפעיל סמל חלופי תיאור דוגמה
וגם {whitespace} התאמה אם הבעיה מכילה את שני הקריטריונים star:true AND componentid:46046
או | התאמה אם הבעיה מכילה אחד מהקריטריונים type:(Bug|feature_request)
NOT - התאמה אם הבעיה לא מכילה את הקריטריונים -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 הם מקבילים.

  • יש להשתמש בסוגריים בצורה חופשית כדי לקבץ בצורה ברורה מונחים בשאילתת החיפוש. כברירת מחדל, מעקב הבעיות משייך את NOT למונח שממשיך אחריו בלבד, ומקבץ את OR עם שני המונחים שמופיעים בסוגריים. לדוגמה, שאילתת החיפוש title:(a OR b NOT c AND d) מקבילה ל-title:((a OR b) AND (NOT c) AND d).

מקפים

לתו המקף (-) יש משמעויות שונות על סמך ההקשר בשאילתת החיפוש:

  • במעקב אחר בעיות, המקף שלפני מילה בחיפוש מתייחס למקף שמופיע לפני המילה בחיפוש כאופרטור NOT. לדוגמה, קריטריוני החיפוש -assignee:none או assignee:-none מחזירים את כל הבעיות שמיוחסות להן.

  • במעקב אחר בעיות, מחרוזות שמחוברות באמצעות תו מקף מתייחסות למחרוזות שמוקפות במירכאות. לדוגמה, הקריטריונים לחיפוש state-of-the-art מקבילים ל-"state of the art".

  • כשמשתמשים במעקב בעיות, המערכת מתייחסת למילים במקפים בשדה בעיה כמילים עצמאיות שמופרדות באמצעות רווח. כלומר, אם בכותרת הבעיה יש את המילה state-of-the-art ואתם מריצים את שאילתת החיפוש title:(of art state the) או title:("state of the art"), הבעיה מוחזרת כחלק מתוצאות החיפוש.

אופרטורים יחסיים

תחביר הבסיס של קריטריון חיפוש של שדה/ערך הוא [field]:[value], כאשר תו הנקודתיים (:) מציין שהשדה הנתון צריך להיות שווה לערך שצוין או להכיל אותו על מנת שבעיה תוחזר בתוצאות החיפוש.

שדות שמכילים ערך זמן (created, modified, resolved, verified ושדות מסוימים בהתאמה אישית) או ערך ספירה (duplicatecount, votecount, commentcount ו-cccount) תומכים באופרטורים הרלציוניים הבאים:

סמל תיאור
< תואם לבעיה אם הערך שלה נמוך מערך החיפוש או לפניו.
<= תואם לבעיה אם הערך שלה נמוך מ/לפני או שווה לערך החיפוש.
> מתאים לבעיה אם הערך שלה גבוה מערך החיפוש או אחרי הערך.
>= תואם לבעיה אם הערך שלה גדול מ/אחרי או שווה לערך החיפוש.

חיפושי זמן

לשפת שאילתות החיפוש יש תחביר מיוחד לשדות תואמים שמכילים ערך זמן. כך, למעקב אחר בעיות, יש אפשרות לחפש בטווחי זמנים או בזמנים יחסיים לפי הצורך.

פורמט זמן מוחלט

הפורמט לציון שעה הוא:

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

בפורמט הזה, [yyyy] הוא השנה בת 4 ספרות, [MM] הוא החודש בן 2 הספרות, [dd] הוא היום בן 2 הספרות, [HH] הוא שתי הספרות של שעון בן 24 שעות, [mm] הוא הדקה ו-[ss] הוא החודש השני. כל השעות הן לפי שעון UTC.

כשאתם מחפשים בעיות שנוצרו לפני או אחרי פרק זמן מסוים, תוכלו לספק את רמת המיקוד הרצויה. לדוגמה, תוכלו לציין את הערך created:2014-06 כדי לחפש בעיות שנוצרו מתישהו ביוני 2014. לקבלת פרטים ספציפיים יותר, ניתן לחפש ב-created:2014-06-03T04 בעיות שנוצרו ב-3 ביוני 2014 בשעה הרביעית (בין 4 ל-5:00 לפי שעון UTC).

טווחי זמן

אפשר להשתמש בשני תווים של נקודה (..) על מנת לציין טווח זמן בקריטריונים לחיפוש של שדה/ערך. התחביר הוא [field]:[start time]..[end time]. זמני ההתחלה והסיום יכולים להיות ספציפיים בכל מידת ספציפיות. לדוגמה, הפונקציה verified:2013..2015 מחזירה את כל הבעיות שאומתו ב-2013, 2014 או 2015.

פורמט זמן יחסי

אפשר גם לציין שעה במונחים של ימים לפני היום. כדי לעשות זאת, יש להשתמש בפורמט [days]d, כאשר [days] הוא מספר הימים בעבר שאתם רוצים לכלול בתוצאות החיפוש. לדוגמה, תוכלו להשתמש ב-modified:5d כדי לאתר בעיות ששונו ב-5 הימים האחרונים.

כשמשתמשים בפורמט זמן יחסי, האופרטור צריך להיות תו הנקודתיים (:), כמו 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

חשוב לשים לב: כפי שצוין בפורמט זמן מוחלט, חיפושי הזמן ב'מעקב אחר בעיות' מבוצעים לפי UTC. אותו עיקרון חל על חיפושים שמשתמשים ב-today.