جست‌وجو

صفحه مرورگر آنکی و قابلیت دسته پالایش‌شده از روش مشترکی برای جست‌وجوی کارت‌ها/یادداشت‌های مشخص استفاده می‌کنند. این روش را می‌توان برای تنظیم محدوده بهینه‌سازی FSRS هم به‌کار برد.

جست‌وجوهای ساده

وقتی متنی در جعبه جست‌وجو تایپ می‌کنید، آنکی یادداشت‌های منطبق را می‌یابد و کارت‌هایشان را نمایش می‌دهد. آنکی در همه فیلدهای یادداشت‌ها جست‌وجو می‌کند، اما برچسب‌ها را جست‌وجو نمی‌کند (برای جست‌وجوی برچسب‌ها بعداً در همین بخش را ببینید). چند مثال:

dog
جست‌وجو برای "dog" — با واژه‌هایی مانند "doggy" و "underdog" هم مطابقت می‌کند.

dog cat
یادداشت‌هایی را می‌یابد که هم "dog" و هم "cat" دارند؛ مانند "raining cats and dogs".

dog or cat
یادداشت‌هایی را می‌یابد که "dog" یا "cat" دارند.

dog (cat or mouse)
یادداشت‌هایی را می‌یابد که "dog" و "cat" دارند، یا "dog" و "mouse".

-cat
یادداشت‌هایی را می‌یابد که "cat" ندارند.

-cat -mouse
یادداشت‌هایی را می‌یابد که نه "cat" دارند و نه "mouse".

-(cat or mouse)
مثل مورد قبلی.

"a dog"
یادداشت‌هایی را می‌یابد که دقیقاً رشته نویسه‌های "a dog" در آن‌ها هست؛ مانند "atta dog"، اما نه "dog a" یا "adog".

-"a dog"
یادداشت‌هایی را می‌یابد که دقیقاً رشته نویسه‌های "a dog" را ندارند.

d_g
یادداشت‌هایی را می‌یابد که d، <یک نویسه> و g دارند؛ مانند dog، dig، dug و غیره.

d*g
یادداشت‌هایی را می‌یابد که d، <صفر یا چند نویسه> و g دارند؛ مانند dg، dog، dung و غیره.

w:dog
به‌جای رشته نویسه‌ها، واژه "dog" را جست‌وجو می‌کند — با "dog" مطابقت می‌کند اما نه با "doggy" یا "underdog". نیازمند آنکی 2.1.24+، AnkiMobile 2.1.61+ یا AnkiDroid 2.17+ است. توجه کنید تغییرات قالب‌بندی ممکن است به‌عنوان مرز واژه تفسیر شوند؛ مثلاً جست‌وجوی w:exam با example مطابقت می‌کند، چون بخش "exam" واژه example درشت است.

w:dog*
با "dog" و "doggy" مطابقت می‌کند، اما نه با "underdog".

w:*dog
با "dog" و "underdog" مطابقت می‌کند، اما نه با "doggy".

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

  • عبارت‌های جست‌وجو با فاصله از هم جدا می‌شوند.

  • وقتی چند عبارت جست‌وجو داده می‌شود، آنکی به‌دنبال یادداشت‌هایی می‌گردد که با همه عبارت‌ها مطابقت دارند — یک and ضمنی میان هر عبارت درج می‌شود. در آنکی 2.1.24+، AnkiMobile 2.0.60+ و AnkiDroid 2.17+ می‌توانید در صورت تمایل صریح باشید (dog and cat همان dog cat است)، اما نسخه‌های قدیمی‌تر آنکی and را واژه دیگری برای جست‌وجو تلقی می‌کنند.

  • اگر فقط تطبیق یکی از عبارت‌ها کافی است، می‌توانید از or استفاده کنید.

  • می‌توانید علامت منفی (-) را به ابتدای عبارتی بیفزایید تا یادداشت‌هایی یافته شوند که با آن عبارت مطابقت ندارند.

  • می‌توانید عبارت‌های جست‌وجو را با قراردادن در پرانتز گروه‌بندی کنید؛ مانند مثال dog (cat or mouse). این هنگام ترکیب جست‌وجوهای OR و AND مهم می‌شود — در مثال، با پرانتزها یا "dog cat" یا "dog mouse" مطابقت می‌کند، در حالی که بدون آن‌ها یا "dog and cat" یا "mouse".

  • آنکی فقط می‌تواند درون قالب‌بندیِ فیلد مرتب‌سازی‌ای که پیکربندی کرده باشید جست‌وجو کند. مثلاً اگر "example" را در یکی از فیلدهایتان بیفزایید با بخش "exa" درشت، هنگام جست‌وجوی example مطابقت نمی‌کند مگر آنکه آن فیلد فیلد مرتب‌سازی باشد. اگر واژه‌ای قالب‌بندی نشده، یا قالب‌بندی در میان واژه تغییر نکرده باشد، آنکی می‌تواند آن را در هر فیلدی بیابد.

  • جست‌وجوهای استاندارد برای نویسه‌های لاتین به بزرگی و کوچکی حروف حساس نیستند — a-z با A-Z مطابقت می‌کند و برعکس. نویسه‌های دیگر مانند سیریلیک در جست‌وجوی استاندارد حساس به بزرگی و کوچکی‌اند، اما با جست‌وجو بر مرز واژه یا عبارت باقاعده (w:، re:) می‌توان آن‌ها را نا‌حساس کرد.

محدودکردن به یک فیلد

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

front:dog
یادداشت‌هایی را می‌یابد که فیلد Frontشان دقیقاً "dog" است. فیلدی که "a dog" باشد مطابقت نمی‌کند.

"animal front:a dog"
یادداشت‌هایی را می‌یابد که فیلد "Animal Front" آن‌ها دقیقاً "a dog" است. گیومه دوتایی الزامی است: بعداً در همین بخش را ببینید.

front:*dog*
یادداشت‌هایی را می‌یابد که فیلد Frontشان در جایی dog دارد.

front:
یادداشت‌هایی را می‌یابد که فیلد Front خالی دارند.

front:_*
یادداشت‌هایی را می‌یابد که فیلد Frontشان ناخالی است.

front:*
یادداشت‌هایی را می‌یابد که فیلد Front دارند، خالی یا ناخالی.

fr*:text
یادداشت‌هایی را می‌یابد که در فیلدی با پیشوند "fr" هستند. نیازمند آنکی 2.1.24+، AnkiMobile 2.1.60+ یا AnkiDroid 2.17+ است.

برچسب‌ها، دسته‌ها، کارت‌ها و یادداشت‌ها

tag:animal
یادداشت‌هایی را می‌یابد که برچسب "animal" یا زیربرچسب‌هایی مانند "animal::mammal" دارند.

tag:none
یادداشت‌هایی را می‌یابد که برچسب ندارند.

tag:ani*
یادداشت‌هایی را می‌یابد که برچسب‌هایشان با "ani" شروع می‌شود.

deck:french
کارت‌هایی را در دسته سطح بالایی به نام "French" یا زیردسته‌هایش مانند "French::Words" می‌یابد. با زیردسته‌هایی با آن نام، مانند "Languages::French"، مطابقت نمی‌کند.

deck:french::words
کارت‌هایی را در زیردسته "French::Words" می‌یابد.

deck:french -deck:french::*
کارت‌هایی را در "French" می‌یابد، اما نه در زیردسته‌هایش.

deck:"french words"
جست‌وجو وقتی نام دسته فاصله دارد.

"deck:french words"
مثل قبلی.

deck:filtered
فقط دسته‌های پالایش‌شده.

-deck:filtered
فقط دسته‌های عادی.

preset:"Default"
کارت‌ها در همه دسته‌هایی که از پیش‌تنظیم گزینه‌های دستهٔ "Default" استفاده می‌کنند. نیازمند آنکی 23.10+، AnkiMobile 23.10+ یا AnkiDroid 2.17+ است.

card:forward
کارت‌هایی را می‌یابد که توسط نوع کارتی به نام "Forward" ساخته شده‌اند.

card:1
کارت‌ها را بر اساس شماره نوع کارت جست‌وجو می‌کند؛ مثلاً برای یافتن دومین حذف اطلاعاتی یک یادداشت، از card:2 استفاده می‌کردید

note:basic
کارت‌هایی را جست‌وجو می‌کند که با نوع یادداشتی به نام "Basic" ساخته شده‌اند.

نادیده‌گرفتن اعراب/نویسه‌های ترکیبی

نیازمند آنکی 2.1.24+، AnkiMobile 2.0.60+ یا AnkiDroid 2.17+ است.

می‌توانید از nc: (nc مخفف "no combining" است) استفاده کنید تا آنکی نویسه‌های ترکیبی را نادیده بگیرد. مثلاً:

nc:uber
با یادداشت‌هایی مطابقت می‌کند که "uber"، "über"، "Über" و غیره دارند.

nc:は
با "は"، "ば" و "ぱ" مطابقت می‌کند.

nc:heisen یا nc:heißen
با یادداشت‌هایی مطابقت می‌کند که "heißen" و "heisen" دارند، چون ß مانند s تلقی می‌شود (نه ss) و s مانند ß.

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

جست‌وجو در حذف‌های اطلاعاتی

نیازمند آنکی 25.07+ است.

می‌توانید از sc: (sc مخفف "strip clozes" است) برای جست‌وجو در متن کامل یادداشت‌هایی با حذف اطلاعاتی، با نادیده‌گرفتن نشانه‌گذاری cloze استفاده کنید. مثلاً:

sc:mnemonic
با یادداشتی مطابقت می‌کند که {{c1::mn}}{{c2::e}}monic را در بر دارد.

sc:capital of France
با یادداشتی مطابقت می‌کند که The {{c1::capital}} of {{c2::France}} را در بر دارد.

جست‌وجوهایی که حذف‌های اطلاعاتی را کنار می‌گذارند از جست‌وجوهای معمولی کندترند.

عبارت‌های باقاعده

آنکی 2.1.24+، AnkiMobile 2.0.60+ و AnkiDroid 2.17+ از جست‌وجو در یادداشت‌ها با «عبارت‌های باقاعده» — راه استاندارد و قدرتمند جست‌وجو در متن — پشتیبانی می‌کنند.

جست‌وجو را با re: شروع کنید تا از عبارت باقاعده استفاده شود. برای آسان‌تر شدن کار، آنکی موارد زیر را ورودی خام تلقی می‌کند؛ پس قواعد آنجا را به یاد بسپارید.

چند مثال:

"re:(some|another).*thing"
یادداشت‌هایی را می‌یابد که "some" یا "another" دارند، سپس ۰ یا چند نویسه، و سپس "thing".

re:\d{3}
یادداشت‌هایی را می‌یابد که ۳ رقم پشت‌سرهم دارند.

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

front:re:[a-c]1
با a1، B1 یا c1 — با حرف بزرگ یا کوچک — که در هر جای فیلد "Front" آمده باشد مطابقت می‌کند.

front:re:^[a-c]1$
مانند مثال قبلی، اما اگر متن دیگری پیش یا پس از a1/b1/c1 بیاید مطابقت نمی‌کند.

آنکی 2.1.50+ از عبارت‌های باقاعده برای برچسب‌ها پشتیبانی می‌کند:

tag:re:^parent$
یادداشت‌هایی را می‌یابد که دقیقاً برچسب "parent" دارند، بدون توجه به برچسب‌های فرزندی مانند "parent::child".

"tag:re:lesson-(1[7-9]|2[0-5])"
یادداشت‌هایی را می‌یابد که برچسب‌های "lesson-17" تا "lesson-25" دارند.

برای اطلاعات بیشتر درباره عبارت‌های باقاعده، این وب‌سایت را ببینید.

چند نکته که باید بدانید:

  • جست‌وجو به‌طور پیش‌فرض به بزرگی و کوچکی حروف حساس نیست؛ برای حساس‌کردن، از (?-i) در ابتدا استفاده کنید.
  • بعضی متن‌ها مانند فاصله‌ها و خطوط جدید ممکن است در HTML متفاوت نمایش داده شوند — می‌توانید از ویرایشگر HTML در صفحه ویرایش برای دیدن محتوای HTML زیرین استفاده کنید.
  • برای جزئیات پشتیبانی regex آنکی، مستندات crateregex را ببینید.

وضعیت کارت

is:due
کارت‌های مروری و کارت‌های در حال یادگیری که منتظر مطالعه‌اند.

is:new
کارت‌های جدید.

is:learn
کارت‌های در حال یادگیری.

is:review
مرورها (هم سررسید و هم غیرسررسید) و کارت‌های لغزش‌خورده.

is:suspended
کارت‌هایی که به‌طور خودکار یا دستی معلق شده‌اند.

is:buried
کارت‌هایی که به‌طور خودکار یا دستی کنار گذاشته شده‌اند.

is:buried-sibling
کارت‌هایی که به‌طور خودکار کنار گذاشته شده‌اند.

is:buried-manually
کارت‌هایی که به‌طور دستی کنار گذاشته شده‌اند.

کارت‌هایی که لغزش خورده‌اند در چند مورد از دسته‌های قبلی می‌گنجند؛ پس ترکیب عبارت‌های جست‌وجوی مختلف برای نتایج دقیق‌تر سودمند باشد:

is:learn is:review
کارت‌هایی که لغزش خورده‌اند و منتظر یادگیری مجدد‌اند.

-is:learn is:review
کارت‌های مروری، بدون کارت‌های لغزش‌خورده.

is:learn -is:review
کارت‌هایی که برای نخستین‌بار در حال یادگیری‌اند.

پرچم‌ها

flag:0
کارت‌های بدون پرچم.

flag:1
کارت‌های با پرچم قرمز.

flag:2
کارت‌های با پرچم نارنجی.

flag:3
کارت‌های با پرچم سبز.

flag:4
کارت‌های با پرچم آبی.

flag:5
کارت‌های با پرچم صورتی.

flag:6
کارت‌های با پرچم فیروزه‌ای.

flag:7
کارت‌های با پرچم بنفش.

ویژگی‌های کارت

prop:ivl>=10
کارت‌هایی با فاصله ۱۰ روز یا بیشتر.

prop:due=1
کارت‌های سررسید فردا.

prop:due=-1
کارت‌های سررسید دیروز که هنوز پاسخ داده نشده‌اند.

prop:due>=1
همه کارت‌های سررسید در آینده، از جمله فردا.

prop:due<=-1
همه کارت‌های عقب‌افتاده.

prop:due>=-1 prop:due<=1
کارت‌های سررسید دیروز، امروز و فردا.

prop:reps<10
کارت‌هایی که کمتر از ۱۰ بار به آن‌ها پاسخ داده شده.

prop:lapses>3
کارت‌هایی که بیش از ۳ بار لغزش خورده‌اند.

prop:ease!=2.5
کارت‌هایی که از سهولت پیش‌فرض آسان‌تر یا سخت‌ترند.

prop:pos<=100
کارت‌های جدید با موقعیتی کمتر یا مساوی ۱۰۰ در صف.

جست‌وجوهای زیر نیازمند آنکی 23.10+ و فعال‌بودن FSRS هستند:

prop:s>21
کارت‌هایی با پایداری بیشتر از ۲۱ روز.

prop:d>0.3
کارت‌هایی با دشواری بیشتر از 0.3.

prop:r<0.9
کارت‌هایی با بازیابی‌پذیری کمتر از 0.9.

رخدادهای اخیر

افزوده‌شده

added:1
کارت‌هایی که امروز افزوده شده‌اند.

added:7
کارت‌هایی که در ۷ روز گذشته افزوده شده‌اند.

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

ویرایش‌شده

edited:n
کارت‌هایی که متن یادداشت‌شان در n روز گذشته افزوده/ویرایش شده است.

این نیازمند آنکی 2.1.28+ یا AnkiMobile 2.0.64+ است.

پاسخ‌داده‌شده

rated:1
کارت‌هایی که امروز به آن‌ها پاسخ داده شده.

rated:1:2
کارت‌هایی که امروز Hard (۲) گرفته‌اند.

rated:7:1
کارت‌هایی که در ۷ روز گذشته Again (۱) گرفته‌اند.

rated:31:4
کارت‌هایی که در ۳۱ روز گذشته Easy (۴) گرفته‌اند.

آنکی 2.1.39+ از جست‌وجوهای نمره بر بازه بیش از ۳۱ روز پشتیبانی می‌کند.

توجه کنید برای جست‌وجوی کارت‌های پاسخ‌داده‌شده در روز مشخص، rated:n -rated:(n-1) ممکن است همیشه کار نکند. به‌جای آن از این‌ها استفاده کنید:

prop:rated=0
کارت‌هایی که امروز به آن‌ها پاسخ داده شده.

prop:rated=-1
کارت‌هایی که یک روز پیش به آن‌ها پاسخ داده شده.

prop:rated=-7
کارت‌هایی که ۷ روز پیش به آن‌ها پاسخ داده شده.

نخستین پاسخ

نیازمند آنکی 2.1.45+ است.

introduced:1
کارت‌هایی که امروز برای نخستین‌بار به آن‌ها پاسخ داده شده.

introduced:365
کارت‌هایی که در ۳۶۵ روز گذشته برای نخستین‌بار به آن‌ها پاسخ داده شده.

تطبیق نویسه‌های ویژه

اگر از نسخه‌ای پیش از آنکی 2.1.36 استفاده می‌کنید، جست‌وجوهای زیر ممکن است کار نکنند.

همان‌طور که در بخش قبلی دیدید، بعضی نویسه‌ها مانند *، _ و " در جست‌وجو معنای ویژه دارند. اگر لازم باشد آن نویسه‌ها را در جست‌وجو بیابید، باید به آنکی بگویید به‌طور ویژه با آن‌ها رفتار نکند. به این کار «گریز دادن نویسه» می‌گویند و عمدتاً با گیومه دوتایی و بک‌اسلش انجام می‌شود.

  • فاصله
    برای تطبیق چیزی که فاصله دارد، "entire term" را در گیومه دوتایی بپیچید. اگر جست‌وجوی دونقطه‌ای است، می‌توانید فقط part:"after the colon" را گیومه بزنید.

  • And/Or
    برای جست‌وجوی این واژه‌ها، آن‌ها را در گیومه دوتایی بپیچید. مثلاً dog "and" cat به‌دنبال "dog"، "cat" و واژه "and" می‌گردد. اگر کل عبارت جست‌وجو را مانند مثال قبل گیومه بزنید، نیازی به گریز دادن and یا or نیست.

  • "، * و _
    پیش از این نویسه‌ها بک‌اسلش بگذارید تا تحت‌اللفظی تلقی شوند. مثلاً _ با هر نویسه منفردی مطابقت می‌کند، اما \_ فقط با خط تیره زیرین واقعی.

  • \
    چون بک‌اسلش برای گرفتن معنای ویژه از نویسه‌های دیگر استفاده می‌شود، خودش هم ویژه تلقی می‌شود. اگر لازم است به‌دنبال بک‌اسلش واقعی بگردید، به‌جای \ از \\ استفاده کنید.

  • ( و )
    می‌توانید پرانتزها را با گیومه‌کردن کل عبارت، با بک‌اسلش، یا هر دو هم‌زمان جست‌وجو کنید. مثلاً "(text)"، \(text\) و "\(text\)" همگی جست‌وجوهای هم‌ارزند و به‌دنبال (text) می‌گردند.

  • -
    شروع عبارت جست‌وجو با - معمولاً آن را معکوس می‌کند: مثلاً -dog با همه‌چیز به‌جز dog مطابقت می‌کند. اگر به‌جای آن می‌خواهید خط تیره واقعی را بگنجانید، می‌توانید از بک‌اسلش استفاده کنید یا متن را در گیومه بگذارید. مثلاً \-free یا "-free" با "guilt-free" و "cruelty-free" مطابقت می‌کند.

  • :
    دونقطه‌ها باید با بک‌اسلش گریز داده شوند، مگر آنکه پس از دونقطه‌ای گریزنداده‌شده آمده باشند. مثلاً w:3:30 "3:30" را روی مرز واژه جست‌وجو می‌کند و نیازی به بک‌اسلش ندارد. اما اگر از جست‌وجوی دونقطه‌ای استفاده نمی‌کنید، دونقطه‌ها باید این‌طور گریز داده شوند: 3\:30.

  • &، < و >
    &، < و > هنگام جست‌وجو در آنکی به‌عنوان HTML تلقی می‌شوند و از این رو، جست‌وجوهای دارای آن‌ها همان‌طور که انتظار می‌رود کار نمی‌کنند. اما می‌توانید با استفاده از نام‌های موجودیت HTML متناظرشان (&amp; برای &، &lt; برای < و &gt; برای >) به‌دنبالشان بگردید. مثلاً جست‌وجوی &amp;text به‌دنبال یادداشتی با &text در فیلدی می‌گردد.

ورودی خام

متنی که پس از کلیدواژه‌های معینی (مانند re:) بیاید، ورودی خام تلقی می‌شود؛ یعنی نویسه‌های فهرست‌شده بالا عمدتاً معنای ویژه‌شان را از دست می‌دهند. در چنین زمینه‌ای، فقط حداقلی از گریز دادن برای جلوگیری از ابهام لازم است:

  • گیومه دوتایی (") باید گریز داده شود.

  • فاصله‌ها و پرانتزهای گریزنداده‌شده نیازمند گیومه‌شدن عبارت جست‌وجو هستند.

  • عبارت جست‌وجو نباید به تعداد فردی بک‌اسلش پایان یابد.

شناسه‌های اشیا

nid:123
یادداشت با شناسه یادداشت 123.

cid:123,456,789
همه کارت‌ها با شناسه کارت 123، 456 یا 789.

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

داده سفارشی

آنکی اجازه می‌دهد مقادیر کمی داده سفارشی روی کارت‌ها ذخیره شود که موارد استفاده پیشرفته‌ای مانند زمان‌بندهای سفارشی را ممکن می‌کند. یکی از کاربردهای شاخص این قابلیت در پیاده‌سازی‌های اولیه FSRS بود. در آنکی 23.10+ راه‌هایی برای جست‌وجوی آن هست:

has-cd:v
کارت‌هایی که خاصیت v را در داده سفارشی دارند.

prop:cdn:d>5
کارت‌هایی که مقدار d در داده سفارشی (معمولاً به دشواری در FSRS اشاره دارد) بزرگ‌تر از ۵ است.

prop:cds:v=reschedule
کارت‌هایی که رشته v در داده سفارشی‌شان برابر reschedule است.

جست‌وجوهای دیگر

prop:due=1 is:learn
کارت‌های یادگیری بین‌روزه که برای فردا سررسیدند.

prop:due=0 is:learn -introduced:1
کارت‌های یادگیری بین‌روزه که امروز سررسیدند.

prop:resched=0
کارت‌هایی که امروز دوباره زمان‌بندی شده‌اند؛ چه با Set due date چه با Reschedule cards on change.