کتابخانه‌ی استاندارد · پایگاه داده

تایپ‌سنس db/typesense

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

واردسازی دیتابیس.تایپسنس

تایپ‌سنس یک موتور جستجوی متن‌باز با تحمل غلط تایپی، فیلتر، دسته‌بندی، گروه‌بندی و جستجوی برداری و ترکیبی است. این بسته مستقیم و با net.http با API آن کار می‌کند و همه‌ی آن را پوشش می‌دهد: مجموعه‌ها و فیلدهایشان، سندها یکی یکی یا با درون‌ریزی و برون‌بری انبوه JSONL، همه‌ی پارامترهای جستجو، جستجوی چندگانه و اجتماعی، دسته‌های مترادف و دسته‌های گزینش، پیش‌تنظیم‌ها، کلمات توقف، واژه‌نامه‌های ریشه‌یابی، کلیدهای API و کلیدهای جستجوی محدود که بدون هیچ درخواستی امضا می‌شوند، قاعده‌ها و رویدادهای تحلیل، مدل‌های گفتگو (RAG)، مدل‌های جستجوی زبان طبیعی و کارهای خوشه. نمونه‌ها چون به یک سرور در حال اجرا نیاز دارند فقط بررسی می‌شوند.

هر فراخوانی یک خطا را به عنوان آخرین آرگومان می‌گیرد و اگر چیزی شکست بخورد آن را پر می‌کند؛ با موفق بررسی‌اش کنید، یا با پیدا نشد و تداخل دارد برای دو پاسخی که کد معمولاً جدا رسیدگی می‌کند. یک کارخواه می‌تواند چند گره داشته باشد: گرهی که پاسخ ندهد یا با خطای 5xx پاسخ دهد به اندازه‌ی healthcheck_ms کنار گذاشته می‌شود و درخواست به گره بعدی می‌رود، درست مثل کارخواه‌های رسمی. سندها و یافته‌ها به شکل متن JSON خام برمی‌گردند؛ با دریافت سند به نوع و یافته ها به نوع آن‌ها را در ساختارهای خودتان بخوانید و با درون ریزی از نوع و ساخت سند از نوع ساختارهایتان را بفرستید. تایپ‌سنس ۳۰ مترادف‌ها و بازنویسی‌های هر مجموعه را با دسته‌های مترادف و دسته‌های گزینش جایگزین کرد؛ هر دو شکل اینجا هست، پس بسته با سرورهای ۲۹ و ۳۰ به یک اندازه کار می‌کند. برای مسیری که تابع جداگانه ندارد درخواست را به کار ببرید.

آموزش: جستجو با تایپ‌سنس

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

راه‌اندازی سرور

تایپ‌سنس برنامه‌ای جداست که داده‌ها را در نمایه‌ی خودش نگه می‌دارد. ساده‌ترین راه برای اجرای آن روی رایانه‌ی خودتان داکر است. مقدار --api-key کلید مدیری است که برنامه‌ی شما با هر درخواست می‌فرستد؛ بیرون از رایانه‌ی خودتان به جای xyz یک رمز واقعی بگذارید.

docker run -p 8108:8108 typesense/typesense:30.2 --data-dir /tmp --api-key=xyz

نمونه‌های این آموزش با همین سرور کار می‌کنند، پس هنگام ساختن این سایت کامپایلر آن‌ها را بررسی می‌کند اما اجرا نمی‌کند. خروجی زیر هر نمونه همان چیزی است که روی یک سرور واقعی تایپ‌سنس ۳۰.۲ چاپ کرد. نمونه‌ها را به ترتیب اجرا کنید، چون هر کدام روی داده‌هایی کار می‌کند که نمونه‌های قبلی به جا گذاشته‌اند.

وصل شدن

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

search-connect.salam
واردسازی دیتابیس.تایپسنس

تابع ریشه:
    ناپایا ک := تایپسنس.جدید("http://localhost:8108"، "xyz")
    دیرکن تایپسنس.آزادسازی(ک)
    ناپایا خ := تایپسنس.خطا {}

    اگر وارونه تایپسنس.سلامت(ک، خ):
        سرچاپ "تایپ‌سنس آماده نیست:"، تایپسنس.متن خطا(خ)
        برگشت ۱
    پایان
    سرچاپ "وصل شد، نسخه‌ی سرور"، تایپسنس.نسخه سرور(ک، خ)

    _ := تایپسنس.دریافت مجموعه(ک، "no_such_collection"، خ)
    اگر وارونه تایپسنس.موفق(خ):
        سرچاپ "وضعیت"، خ.وضعیت، "پیدا نشد:"، تایپسنس.پیدا نشد(خ)
        سرچاپ تایپسنس.متن خطا(خ)
    پایان
پایان
خروجیوصل شد، نسخه‌ی سرور 30.2 وضعیت 404 پیدا نشد: true typesense 404: Collection not found

خطا سه بخش کاربردی دارد: status وضعیت HTTP است (و اگر اصلاً به سرور نرسیده باشیم صفر)، kind نوع شکست را می‌گوید و message متنی است که سرور فرستاده.

مجموعه و فیلد

سندها در یک مجموعه نگه داشته می‌شوند و طرح مجموعه می‌گوید چه فیلدهایی دارد و نوع هر کدام چیست. فیلد جدید یک فیلد ساده می‌سازد، فیلد دسته بندی فیلدی که می‌شود مقدارهایش را شمرد، و با یک فیلد کامل بقیه‌ی گزینه‌ها را می‌گذارید: optional برای فیلدی که بعضی سندها ندارند، sort، locale برای زبان متن، infix برای یافتن از میان واژه و چیزهای دیگر. نوع‌ها ثابت‌هایی مثل نوع متن، نوع عدد۳۲، نوع اعشاری، نوع آرایه متن و نوع نقطه جغرافیایی هستند.

search-schema.salam
واردسازی دیتابیس.تایپسنس

تابع ریشه:
    ناپایا ک := تایپسنس.جدید("http://localhost:8108"، "xyz")
    دیرکن تایپسنس.آزادسازی(ک)
    ناپایا خ := تایپسنس.خطا {}
    _ := تایپسنس.حذف مجموعه(ک، "lesson_books"، خ)

    ناپایا طرح := تایپسنس.طرح { نام = "lesson_books"، فیلد مرتب‌سازی پیش‌فرض = "year" }
    طرح.فیلدها.بیفزا(تایپسنس.فیلد جدید("title"، تایپسنس.نوع متن))
    طرح.فیلدها.بیفزا(تایپسنس.فیلد جدید("author"، تایپسنس.نوع متن))
    طرح.فیلدها.بیفزا(تایپسنس.فیلد دسته بندی("genre"، تایپسنس.نوع متن))
    طرح.فیلدها.بیفزا(تایپسنس.فیلد جدید("year"، تایپسنس.نوع عدد۳۲))
    طرح.فیلدها.بیفزا(تایپسنس.فیلد { نام = "rating"، نوع = تایپسنس.نوع اعشاری، اختیاری = درست })

    مجموعه := تایپسنس.ساخت مجموعه(ک، طرح، خ)
    اگر وارونه تایپسنس.موفق(خ):
        سرچاپ تایپسنس.متن خطا(خ)
        برگشت ۱
    پایان
    سرچاپ "ساخته شد"، مجموعه.نام، "با"، مجموعه.فیلدها.طول()، "فیلد"
    هر فیلد در مجموعه.فیلدها:
        سرچاپ " "، فیلد.نام، فیلد.نوع، "دسته‌بندی:"، فیلد.دسته‌بندی
    پایان
پایان
خروجیساخته شد lesson_books با 5 فیلد title string دسته‌بندی: false author string دسته‌بندی: false genre string دسته‌بندی: true year int32 دسته‌بندی: false rating float دسته‌بندی: false

یک default_sorting_field عددی ترتیب را وقتی جستجو ترتیبی نخواسته تعیین می‌کند. بعداً با افزودن فیلدها و حذف فیلدها مجموعه را تغییر دهید، با دریافت مجموعه و فهرست مجموعه ها نگاهش کنید و با حذف مجموعه پاکش کنید. برای ساختن دوباره‌ی یک مجموعه بی هیچ وقفه، نسخه‌ی تازه را کنار نسخه‌ی قدیمی بسازید و یک نام مستعار را با درج نام مستعار جابه‌جا کنید؛ برنامه‌هایی که با نام مستعار جستجو می‌کنند متوجه جابه‌جایی نمی‌شوند.

افزودن سند

سند یک شیء JSON است که فیلدهایش با طرح جور است. می‌توانید JSON را خودتان بنویسید، اما معمولاً داده از پیش در یک ساختار است. درون ریزی از نوع یک وکتور از هر ساختاری را می‌گیرد، هر کدام را با رمزگذار خود کامپایلر به JSON تبدیل می‌کند و همه را در یک درخواست می‌فرستد. دریافت سند به نوع برعکس کار می‌کند و سند ذخیره‌شده را به ساختار شما برمی‌گرداند. با @جیسون نام فیلد در JSON انگلیسی می‌ماند و نام فیلد در کد فارسی.

search-import.salam
واردسازی دیتابیس.تایپسنس

ساختار کتاب:
    @جیسون "id"
    همگانی شناسه: رشته = ""
    @جیسون "title"
    همگانی عنوان: رشته = ""
    @جیسون "author"
    همگانی نویسنده: رشته = ""
    @جیسون "genre"
    همگانی گونه: رشته = ""
    @جیسون "year"
    همگانی سال: صحیح = ۰
پایان

تابع ریشه:
    ناپایا ک := تایپسنس.جدید("http://localhost:8108"، "xyz")
    دیرکن تایپسنس.آزادسازی(ک)
    ناپایا خ := تایپسنس.خطا {}

    ناپایا کتاب‌ها := وکتور {} برگردان وکتور<کتاب>
    کتاب‌ها.بیفزا(کتاب { شناسه = "1"، عنوان = "کلیدر"، نویسنده = "محمود دولت‌آبادی"، گونه = "رمان"، سال = ۱۹۸۴ })
    کتاب‌ها.بیفزا(کتاب { شناسه = "2"، عنوان = "جای خالی سلوچ"، نویسنده = "محمود دولت‌آبادی"، گونه = "رمان"، سال = ۱۹۷۹ })
    کتاب‌ها.بیفزا(کتاب { شناسه = "3"، عنوان = "بوف کور"، نویسنده = "صادق هدایت"، گونه = "داستان"، سال = ۱۹۳۶ })
    کتاب‌ها.بیفزا(کتاب { شناسه = "4"، عنوان = "سووشون"، نویسنده = "سیمین دانشور"، گونه = "رمان"، سال = ۱۹۶۹ })
    کتاب‌ها.بیفزا(کتاب { شناسه = "5"، عنوان = "شازده احتجاب"، نویسنده = "هوشنگ گلشیری"، گونه = "داستان"، سال = ۱۹۶۹ })
    ن := تایپسنس.درون ریزی از نوع(ک، "lesson_books"، کتاب‌ها، تایپسنس.گزینه های نوشتن { کنش = تایپسنس.کنش درج }، خ)
    سرچاپ "وارد شد"، ن.موفق، "ناموفق"، ن.ناموفق

    _ := تایپسنس.ساخت سند(ک، "lesson_books"، `{"id": "6", "title": "گلستان", "author": "سعدی", "genre": "نثر", "year": "1258"}`، خ)
    سرچاپ "نوع نادرست:"، تایپسنس.متن خطا(خ)
    سرچاپ تایپسنس.درج سند(ک، "lesson_books"، `{"id": "6", "title": "گلستان", "author": "سعدی", "genre": "نثر", "year": 1258}`، خ)

    ناپایا ب := کتاب {}
    اگر تایپسنس.دریافت سند به نوع(ک، "lesson_books"، "1"، ب، خ):
        سرچاپ "خوانده شد:"، ب.عنوان، "از"، ب.نویسنده
    پایان
    سرچاپ تایپسنس.به‌روزرسانی سند(ک، "lesson_books"، "6"، `{"rating": 4.9}`، خ)
پایان
خروجیوارد شد 5 ناموفق 0 نوع نادرست: typesense 400: Field `year` must be an int32. {"author":"سعدی","genre":"نثر","id":"6","title":"گلستان","year":1258} خوانده شد: کلیدر از محمود دولت‌آبادی {"author":"سعدی","genre":"نثر","id":"6","rating":4.9,"title":"گلستان","year":1258}

درون‌ریزی حتی وقتی بعضی سندها شکست بخورند پاسخ می‌دهد، پس failed را بررسی کنید؛ errors هر خط ناموفق را با دلیلش می‌آورد. گزینه های نوشتن می‌گوید با سندهای موجود چه شود: کنش ساخت آن‌ها را نمی‌پذیرد، کنش درج جایگزینشان می‌کند و کنش به‌روزرسانی و کنش جایگذاری فقط فیلدهای فرستاده‌شده را عوض می‌کنند. برای یک سند در هر بار ساخت سند، درج سند، به‌روزرسانی سند و حذف سند هست، و حذف با پالایه و به‌روزرسانی با پالایه چند سند را با هم تغییر می‌دهند.

جستجوی جدید پارامترهای یک جستجو را می‌سازد: متنی که دنبالش هستید و فیلدهایی که باید در آن‌ها گشت. * به جای متن همه‌ی سندها را می‌آورد و همراه یک پالایه به کار می‌آید. نتیجه found دارد، یعنی تعداد یافته‌ها، و hits، یکی برای هر سند در این صفحه؛ document هر یافته خود سند به شکل JSON است.

search-query.salam
واردسازی دیتابیس.تایپسنس

تابع نشان(برچسب: رشته، ن: تایپسنس.نتیجه جستجو):
    سرچاپ برچسب، "پیدا شد"، ن.یافت‌شده
    هر ی در ن.یافته‌ها:
        سرچاپ "   "، ی.سند
    پایان
پایان

تابع ریشه:
    ناپایا ک := تایپسنس.جدید("http://localhost:8108"، "xyz")
    دیرکن تایپسنس.آزادسازی(ک)
    ناپایا خ := تایپسنس.خطا {}

    نشان("دولت‌آبادی:"، تایپسنس.جستجو(ک، "lesson_books"، تایپسنس.جستجوی جدید("دولت‌آبادی"، "author")، خ))
    نشان("غلط تایپی:"، تایپسنس.جستجو(ک، "lesson_books"، تایپسنس.جستجوی جدید("سوشون"، "title")، خ))

    ناپایا ج := تایپسنس.جستجوی جدید("*"، "")
    ج.فیلتر = "genre:=رمان && year:<1980"
    ج.ترتیب = "year:desc"
    ج.فیلدهای شامل = "title,year"
    نشان("با پالایه:"، تایپسنس.جستجو(ک، "lesson_books"، ج، خ))

    ناپایا ب := تایپسنس.جستجوی جدید("دولت‌آبادی"، "author,title")
    ب.اندازه صفحه = ۱
    ن := تایپسنس.جستجو(ک، "lesson_books"، ب، خ)
    سرچاپ "صفحه"، ن.صفحه، "از"، ن.یافت‌شده، "نتیجه، برجسته:"، تایپسنس.برجسته(ن.یافته‌ها.بگیر(۰)، "author")
پایان
خروجیدولت‌آبادی: پیدا شد 2 {"author":"محمود دولت‌آبادی","genre":"رمان","id":"1","title":"کلیدر","year":1984} {"author":"محمود دولت‌آبادی","genre":"رمان","id":"2","title":"جای خالی سلوچ","year":1979} غلط تایپی: پیدا شد 1 {"author":"سیمین دانشور","genre":"رمان","id":"4","title":"سووشون","year":1969} با پالایه: پیدا شد 2 {"title":"جای خالی سلوچ","year":1979} {"title":"سووشون","year":1969} صفحه 1 از 2 نتیجه، برجسته: محمود <mark>دولت‌آبادی</mark>

سه چیز رخ داد که لازم نبود بخواهید. سوشون باز هم سووشون را پیدا کرد، چون تایپ‌سنس یکی دو غلط تایپی در هر واژه را می‌بخشد. بهترین تطابق اول آمد. و برجسته نشان می‌دهد کدام بخش فیلد جور شد. پارامترهای دیگر فیلدهای پارامترهای جستجو هستند: filter_by و sort_by مثل نمونه، page و per_page برای صفحه‌بندی، include_fields برای برگرداندن داده‌ی کمتر و num_typos برای سخت‌گیری بیشتر. پارامتری که فیلد جدا ندارد با تایپسنس.تنظیم پارامتر(ج، نام، مقدار) فرستاده می‌شود.

می‌خواهیدبنویسید
فقط بعضی سندهاج.filter_by = "year:>1950 && genre:=[رمان, داستان]"
ترتیبی دیگرج.sort_by = "year:desc"
صفحه‌ی سوم، ده‌تا در هر صفحهج.page = ۳ و ج.per_page = ۱۰
هیچ غلط تایپیج.num_typos = "0"
ساختارهای خودتان به جای JSONتایپسنس.یافته ها به نوع(نتیجه، کتاب‌ها، خ)

دسته‌بندی و گروه

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

search-facets.salam
واردسازی رشته
واردسازی دیتابیس.تایپسنس

تابع ریشه:
    ناپایا ک := تایپسنس.جدید("http://localhost:8108"، "xyz")
    دیرکن تایپسنس.آزادسازی(ک)
    ناپایا خ := تایپسنس.خطا {}

    ناپایا ج := تایپسنس.جستجوی جدید("*"، "")
    ج.فیلدهای دسته‌بندی = "genre"
    ن := تایپسنس.جستجو(ک، "lesson_books"، ج، خ)
    هر د در ن.دسته‌بندی‌ها:
        هر ش در د.شمارها:
            سرچاپ د.نام فیلد، ش.مقدار، ش.تعداد
        پایان
    پایان

    ناپایا گ := تایپسنس.جستجوی جدید("*"، "")
    گ.فیلدهای گروه‌بندی = "genre"
    گ.حد گروه = ۱
    گ.ترتیب = "year:asc"
    نگ := تایپسنس.جستجو(ک، "lesson_books"، گ، خ)
    هر گروه در نگ.گروه‌ها:
        سرچاپ "کهن‌ترین"، رشته.بپیوند(گروه.کلید، "") + ":"، گروه.یافته‌ها.بگیر(۰).سند
    پایان
پایان
خروجیgenre رمان 3 genre داستان 2 genre نثر 1 کهن‌ترین نثر: {"author":"سعدی","genre":"نثر","id":"6","rating":4.9,"title":"گلستان","year":1258} کهن‌ترین داستان: {"author":"صادق هدایت","genre":"داستان","id":"3","title":"بوف کور","year":1936} کهن‌ترین رمان: {"author":"سیمین دانشور","genre":"رمان","id":"4","title":"سووشون","year":1969}

چند جستجو در یک درخواست

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

search-multi.salam
واردسازی دیتابیس.تایپسنس

تابع ریشه:
    ناپایا ک := تایپسنس.جدید("http://localhost:8108"، "xyz")
    دیرکن تایپسنس.آزادسازی(ک)
    ناپایا خ := تایپسنس.خطا {}

    ناپایا جستجوها := وکتور {} برگردان وکتور<تایپسنس.درخواست جستجو>
    جستجوها.بیفزا(تایپسنس.درخواست جستجو { مجموعه = "lesson_books"، پارامترها = تایپسنس.جستجوی جدید("کلیدر"، "title") })
    جستجوها.بیفزا(تایپسنس.درخواست جستجو { مجموعه = "lesson_books"، پارامترها = تایپسنس.جستجوی جدید("هدایت"، "author") })
    مشترک := تایپسنس.پارامترهای جستجو { اندازه صفحه = ۳ }

    هر ن در تایپسنس.جستجوی چندگانه(ک، جستجوها، مشترک، خ):
        سرچاپ "جستجو پیدا کرد"، ن.یافت‌شده
    پایان
    اج := تایپسنس.جستجوی اجتماع(ک، جستجوها، مشترک، خ)
    سرچاپ "اجتماع پیدا کرد"، اج.یافت‌شده
    هر ی در اج.یافته‌ها:
        سرچاپ "  از جستجوی"، ی.شماره جستجو، ی.سند
    پایان
پایان
خروجیجستجو پیدا کرد 1 جستجو پیدا کرد 1 اجتماع پیدا کرد 2 از جستجوی 0 {"author":"محمود دولت‌آبادی","genre":"رمان","id":"1","title":"کلیدر","year":1984} از جستجوی 1 {"author":"صادق هدایت","genre":"داستان","id":"3","title":"بوف کور","year":1936}

مترادف و گزینش

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

search-tuning.salam
واردسازی دیتابیس.تایپسنس

تابع ریشه:
    ناپایا ک := تایپسنس.جدید("http://localhost:8108"، "xyz")
    دیرکن تایپسنس.آزادسازی(ک)
    ناپایا خ := تایپسنس.خطا {}

    ناپایا واژه‌ها := وکتور {} برگردان وکتور<رشته>
    واژه‌ها.بیفزا("رمان")
    واژه‌ها.بیفزا("داستان بلند")
    ناپایا مترادف‌ها := وکتور {} برگردان وکتور<تایپسنس.مترادف>
    مترادف‌ها.بیفزا(تایپسنس.مترادف { شناسه = "novel"، مترادف‌ها = واژه‌ها })
    _ := تایپسنس.درج دسته مترادف(ک، "lesson_words"، مترادف‌ها، خ)

    ناپایا سنجاق‌ها := وکتور {} برگردان وکتور<تایپسنس.سنجاق>
    سنجاق‌ها.بیفزا(تایپسنس.سنجاق { شناسه = "2"، جایگاه = ۱ })
    ناپایا قاعده‌ها := وکتور {} برگردان وکتور<تایپسنس.قاعده گزینش>
    قاعده‌ها.بیفزا(تایپسنس.قاعده گزینش { شناسه = "salouch-first"، پرسمان = "دولت‌آبادی"، نوع تطابق = تایپسنس.تطابق دقیق، سنجاق‌شده‌ها = سنجاق‌ها })
    _ := تایپسنس.درج دسته گزینش(ک، "lesson_rules"، قاعده‌ها، خ)

    _ := تایپسنس.به‌روزرسانی مجموعه(ک، "lesson_books"، `{"synonym_sets": ["lesson_words"], "curation_sets": ["lesson_rules"]}`، خ)
    سرچاپ "داستان بلند"، تایپسنس.جستجو(ک، "lesson_books"، تایپسنس.جستجوی جدید("داستان بلند"، "genre")، خ).یافت‌شده، "کتاب پیدا می‌کند"
    ن := تایپسنس.جستجو(ک، "lesson_books"، تایپسنس.جستجوی جدید("دولت‌آبادی"، "author")، خ)
    سرچاپ "نخستین یافته:"، ن.یافته‌ها.بگیر(۰).سند، "گزینش‌شده:"، ن.یافته‌ها.بگیر(۰).گزینش‌شده
پایان
خروجیداستان بلند 3 کتاب پیدا می‌کند نخستین یافته: {"author":"محمود دولت‌آبادی","genre":"رمان","id":"2","title":"جای خالی سلوچ","year":1979} گزینش‌شده: true

نشانه‌ی curated به صفحه‌ی شما می‌گوید که یافته را یک قاعده جا داده، مثلاً برای نوشتن برچسب «پیشنهاد ویژه». یک جستجو می‌تواند قاعده‌ها را با تایپسنس.تنظیم پارامتر(ج، "enable_curations"، "false") خاموش کند. تایپ‌سنس ۲۹ و قدیمی‌تر مترادف‌ها و قاعده‌ها را به جای دسته، برای هر مجموعه جدا نگه می‌دارد؛ برای آن سرورها درج مترادف و درج بازنویسی را به کار ببرید.

کلیدی برای مرورگر

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

search-keys.salam
واردسازی دیتابیس.تایپسنس

تابع ریشه:
    ناپایا مدیر := تایپسنس.جدید("http://localhost:8108"، "xyz")
    دیرکن تایپسنس.آزادسازی(مدیر)
    ناپایا خ := تایپسنس.خطا {}

    ناپایا مجموعه‌ها := وکتور {} برگردان وکتور<رشته>
    مجموعه‌ها.بیفزا("lesson_books")
    کلید := تایپسنس.کلید فقط جستجو(مدیر، "website search"، مجموعه‌ها، خ)
    سرچاپ "کلید جستجو ساخته شد، اجازه دارد:"، کلید.کنش‌ها.بگیر(۰)

    محدود := تایپسنس.کلید جستجوی محدود(کلید.مقدار، تایپسنس.پارامترهای جستجو { فیلتر = "genre:=داستان" }، ۰)
    ناپایا مرورگر := تایپسنس.جدید("http://localhost:8108"، محدود)
    دیرکن تایپسنس.آزادسازی(مرورگر)
    سرچاپ "مرورگر"، تایپسنس.جستجو(مرورگر، "lesson_books"، تایپسنس.جستجوی جدید("*"، "")، خ).یافت‌شده، "کتاب می‌بیند"
    _ := تایپسنس.حذف سند(مرورگر، "lesson_books"، "1"، خ)
    سرچاپ "و نمی‌تواند حذف کند:"، خ.وضعیت
    _ := تایپسنس.حذف کلید(مدیر، کلید.شناسه، خ)
پایان
خروجیکلید جستجو ساخته شد، اجازه دارد: documents:search مرورگر 2 کتاب می‌بیند و نمی‌تواند حذف کند: 401

وقتی کلید محدود را برای هر نشست جدا می‌دهید، زمان انقضا هم برایش بگذارید (آرگومان آخر، یک زمان یونیکس)، و کلیدهایی را که دیگر لازم ندارید با حذف کلید پاک کنید.

بردار و مکان

واژه تنها راه پیدا کردن چیزها نیست. فیلدی از نوع نقطه جغرافیایی عرض و طول جغرافیایی را نگه می‌دارد، و پالایه‌ای مثل location:(35.70, 51.42, 2 km) فقط چیزهای نزدیک یک نقطه را نگه می‌دارد، و ترتیب بر پایه‌ی همان نقطه نزدیک‌ترین را اول می‌آورد. فیلد بردار (فیلد بردار) فهرستی از عددها را نگه می‌دارد که یک سند را توصیف می‌کند و معمولاً یک مدل یادگیری ماشین آن را ساخته، و vector_query سندهایی را پیدا می‌کند که بردارشان به بردار شما نزدیک‌تر است. با فیلد جاسازی خود تایپ‌سنس بردارها را از متن فیلدهای دیگر می‌سازد.

search-vector-geo.salam
واردسازی دیتابیس.تایپسنس

تابع ریشه:
    ناپایا ک := تایپسنس.جدید("http://localhost:8108"، "xyz")
    دیرکن تایپسنس.آزادسازی(ک)
    ناپایا خ := تایپسنس.خطا {}
    _ := تایپسنس.حذف مجموعه(ک، "lesson_places"، خ)

    ناپایا طرح := تایپسنس.طرح { نام = "lesson_places" }
    طرح.فیلدها.بیفزا(تایپسنس.فیلد جدید("name"، تایپسنس.نوع متن))
    طرح.فیلدها.بیفزا(تایپسنس.فیلد جدید("location"، تایپسنس.نوع نقطه جغرافیایی))
    طرح.فیلدها.بیفزا(تایپسنس.فیلد بردار("style"، ۲))
    _ := تایپسنس.ساخت مجموعه(ک، طرح، خ)
    ناپایا سندها := وکتور {} برگردان وکتور<رشته>
    سندها.بیفزا(`{"name": "کافه‌ی آرام کتابخانه", "location": [35.7019, 51.4223], "style": [0.9, 0.1]}`)
    سندها.بیفزا(`{"name": "باشگاه پرسروصدا", "location": [35.6990, 51.4180], "style": [0.1, 0.9]}`)
    سندها.بیفزا(`{"name": "چایخانه‌ی باغ", "location": [35.8040, 51.4330], "style": [0.8, 0.2]}`)
    _ := تایپسنس.درون ریزی سندها(ک، "lesson_places"، سندها، تایپسنس.گزینه های نوشتن {}، خ)

    ناپایا نزدیک := تایپسنس.جستجوی جدید("*"، "")
    نزدیک.فیلتر = "location:(35.7000, 51.4200, 2 km)"
    نزدیک.ترتیب = "location(35.7000, 51.4200):asc"
    نزدیک.فیلدهای شامل = "name"
    هر ی در تایپسنس.جستجو(ک، "lesson_places"، نزدیک، خ).یافته‌ها:
        سرچاپ "نزدیک:"، ی.سند، ی.فاصله جغرافیایی
    پایان

    ناپایا مانند := تایپسنس.جستجوی جدید("*"، "")
    مانند.پرسمان برداری = "style:([1.0, 0.0], k: 2)"
    مانند.فیلدهای شامل = "name"
    هر ی در تایپسنس.جستجو(ک، "lesson_places"، مانند، خ).یافته‌ها:
        سرچاپ "آرام:"، ی.سند
    پایان
    _ := تایپسنس.حذف مجموعه(ک، "lesson_places"، خ)
پایان
خروجینزدیک: {"name":"باشگاه پرسروصدا"} {"location":212} نزدیک: {"name":"کافه‌ی آرام کتابخانه"} {"location":296} آرام: {"name":"کافه‌ی آرام کتابخانه"} آرام: {"name":"چایخانه‌ی باغ"}

در محیط واقعی

  • یک خوشه‌ی تایپ‌سنس چند گره دارد. نشانی همه را به خوشه جدید بدهید: گرهی که پاسخ ندهد به اندازه‌ی healthcheck_ms کنار گذاشته می‌شود و درخواست به گره بعدی می‌رود. تنظیم نزدیک‌ترین گره گرهی را تعیین می‌کند که اول امتحان شود.
  • کارخواه را با فیلدهایش تنظیم کنید: timeout_ms برای زمان یک درخواست، و retries و retry_interval_ms برای این‌که چقدر تلاش کند.
  • در جستجوها نام مستعار را به کار ببرید، نه نام مجموعه را، تا بتوانید مجموعه را بی وقفه دوباره بسازید.
  • با ساخت تصویر لحظه ای پشتیبان بگیرید، سرور را با سلامت، آمار و سنجه ها زیر نظر داشته باشید، و کلیک‌ها یا پرسش‌های پرطرفدار را با قاعده‌های تحلیل بشمارید (ساخت قاعده تحلیل و ارسال رویداد).
  • برای مسیری که این بسته تابع جدا برایش ندارد، درخواست هر روش و مسیری را با بدنه‌ی JSON می‌فرستد.

همه‌ی تابع‌ها، نوع‌ها و فیلدها با نمونه‌ی خودشان در مرجع پایین همین صفحه آمده‌اند. در مخزن هم برای هر ویژگی یک برنامه‌ی کامل و آزموده به فارسی هست، در پرونده‌هایی از tests/fa/db که نامشان با tslive_ex_ آغاز می‌شود.

گونه‌ها

پارامترهای جستجو SearchParams

ساختار پارامترهای جستجو
پارامترهای یک جستجو. مقدارهای صفر و رشته‌های خالی فرستاده نمی‌شوند؛ هر چیز دیگری از راه تنظیم پارامتر می‌رود.
نامانگلیسیگونهتوضیح
متن جستجوqرشته = ""متنی که جستجو می‌شود؛ * با همه‌ی سندها جور می‌شود.
فیلدهای جستجوquery_byرشته = ""فیلدهایی که جستجو می‌شوند، جداشده با ویرگول.
وزن فیلدهای جستجوquery_by_weightsرشته = ""وزن هر فیلد در query_by، مثل 2,1.
نوع تطابق متنtext_match_typeرشته = ""نحوه‌ی ترکیب امتیاز فیلدها: max_score، max_weight یا sum_score.
پیشوندprefixرشته = ""آیا آخرین واژه به عنوان پیشوند جور شود، برای هر فیلد یک مقدار مثل true,false.
میانوندیinfixرشته = ""جستجوی میانوندی برای هر فیلد: off، always یا fallback.
فیلترfilter_byرشته = ""یک فیلتر، مثل year:>2000 && genre:=[scifi].
ترتیبsort_byرشته = ""ترتیب، مثل year:desc,_text_match:desc.
فیلدهای دسته‌بندیfacet_byرشته = ""فیلدهایی که مقدارهایشان شمرده می‌شود.
پرسمان دسته‌بندیfacet_queryرشته = ""مقدارهای دسته‌بندی را محدود کن، مثل genre:sci.
بیشترین مقدار دسته‌بندیmax_facet_valuesصحیح = 0تعداد مقدارهایی که هر دسته‌بندی برمی‌گرداند.
فیلدهای گروه‌بندیgroup_byرشته = ""نتیجه‌ها را بر اساس این فیلدها گروه‌بندی کن.
حد گروهgroup_limitصحیح = 0تعداد یافته‌هایی که هر گروه برمی‌گرداند.
فیلدهای شاملinclude_fieldsرشته = ""فقط این فیلدها را برگردان.
فیلدهای مستثنیexclude_fieldsرشته = ""این فیلدها را از نتیجه‌ها کنار بگذار.
فیلدهای برجستهhighlight_fieldsرشته = ""فقط این فیلدها را برجسته کن.
فیلدهای برجسته کاملhighlight_full_fieldsرشته = ""کل مقدار این فیلدها را برجسته کن، نه فقط یک تکه.
برچسب ابتدای برجستهhighlight_start_tagرشته = ""برچسب پیش از هر تطابق؛ پیش‌فرض <mark> است.
برچسب انتهای برجستهhighlight_end_tagرشته = ""برچسب پس از هر تطابق.
آستانه گزیدهsnippet_thresholdصحیح = 0فیلدهای کوتاه‌تر از این تعداد واژه کامل برجسته می‌شوند.
تعداد غلط املاییnum_typosرشته = ""تعداد غلط‌های املایی مجاز در هر واژه، از ۰ تا ۲، برای هر فیلد یک مقدار.
آستانه غلط املاییtypo_tokens_thresholdصحیح = 0فقط وقتی کمتر از این تعداد نتیجه پیدا شد دنبال تطابق با غلط تایپی بگرد.
آستانه حذف واژهdrop_tokens_thresholdصحیح = 0فقط وقتی کمتر از این تعداد نتیجه پیدا شد واژه‌هایی از پرسمان را کنار بگذار.
صفحهpageصحیح = 0صفحه، از ۱.
اندازه صفحهper_pageصحیح = 0یافته‌های هر صفحه، تا ۲۵۰.
جابجاییoffsetصحیح = 0از این تعداد یافته بگذر؛ جایگزینی برای page.
حدlimitصحیح = 0این تعداد یافته را برگردان؛ همراه offset به کار می‌رود.
یافته‌های سنجاق‌شدهpinned_hitsرشته = ""سندهایی را در جایگاه‌هایی سنجاق کن، مثل 12:1,3:2.
یافته‌های پنهانhidden_hitsرشته = ""شناسه‌ی سندهایی که پنهان می‌شوند.
برچسب‌های بازنویسیoverride_tagsرشته = ""فقط قاعده‌های گزینشی را که این برچسب‌ها را دارند اعمال کن.
پیش‌تنظیمpresetرشته = ""پارامترهای ذخیره‌شده در این پیش‌تنظیم را به کار ببر.
پرسمان برداریvector_queryرشته = ""یک جستجوی نزدیک‌ترین همسایه، مثل embedding:([0.1, 0.2], k: 10).
کلمات توقفstopwordsرشته = ""دسته‌ی کلمات توقفی که اعمال می‌شود.
جستجوی کاملexhaustive_searchمنطقی = نادرستهمه‌ی شکل‌های پرسمان را در نظر بگیر؛ کندتر ولی کامل.
مهلت جستجو میلی‌ثانیهsearch_cutoff_msصحیح = 0پس از این چند میلی‌ثانیه جستجو را متوقف کن و هر چه پیدا شده را برگردان.
استفاده از کشuse_cacheمنطقی = نادرستنتیجه‌ها را روی سرور در حافظه‌ی نهان نگه دار.
مدت کشcache_ttlصحیح = 0مدت نگه‌داری آن‌ها در حافظه‌ی نهان، به ثانیه.
گفتگوconversationمنطقی = نادرستبه پرسمان با یک مدل گفتگو پاسخ بده (RAG).
شناسه گفتگوconversation_idرشته = ""همین گفتگو را ادامه بده.
شناسه مدل گفتگوconversation_model_idرشته = ""مدل گفتگویی که به کار می‌رود.
پرسمان زبان طبیعیnl_queryمنطقی = نادرستپرسمان به زبان طبیعی را با یک مدل جستجوی زبانی به فیلتر و ترتیب تبدیل کن.
شناسه مدل زبان طبیعیnl_model_idرشته = ""مدل جستجوی زبانی که به کار می‌رود.
نام پارامترهاkeysوکتور<رشته>نام پارامترهایی که با تنظیم پارامتر افزوده شده‌اند.
مقدارهاvaluesوکتور<رشته>مقدارهای آن‌ها.
db-typesense-Search.salam
/*
 * Salam Programming Language (2024-2026)
 *
 *   +-------------------+
 *   |     S A L A M     |
 *   +-------------------+
 *
 * Designed by Seyyed Ali Mohammadiyeh and the Salam Team
 * Born from a decade of language design experience (since 2018)
 *
 * Repository: https://github.com/SalamLang/Salam
 *
 */


واردسازی رشته
واردسازی دیتابیس.تایپسنس

ساختار کتاب:
    همگانی id: رشته = ""
    همگانی title: رشته = ""
    همگانی year: صحیح = 0
پایان

تابع ریشه:
    ک := تایپسنس.جدید("http://localhost:8108"، "search-key")
    ناپایا خ := تایپسنس.خطا {}

    ناپایا p := تایپسنس.جستجوی جدید("تل‌ماسه"، "title,description")
    p.وزن فیلدهای جستجو = "3,1"
    p.فیلتر = "year:>1950 && genres:=[scifi]"
    p.ترتیب = "_text_match:desc,year:desc"
    p.فیلدهای دسته‌بندی = "genres,year"
    p.بیشترین مقدار دسته‌بندی = 10
    p.اندازه صفحه = 20
    p.صفحه = 1
    p.تعداد غلط املایی = "2,1"
    p.برچسب ابتدای برجسته = "<b>"
    p.برچسب انتهای برجسته = "</b>"
    تایپسنس.تنظیم پارامتر(p، "prioritize_exact_match"، "false")
    سرچاپ تایپسنس.متن پرسمان جستجو(p)
    سرچاپ تایپسنس.جیسون پارامترهای جستجو(p)

    r := تایپسنس.جستجو(ک، "books"، p، خ)
    اگر وارونه تایپسنس.موفق(خ):
        سرچاپ تایپسنس.متن خطا(خ)
        برگشت 1
    پایان
    سرچاپ r.یافت‌شده، r.تعداد کل، r.صفحه، r.زمان جستجو میلی‌ثانیه، r.قطع جستجو
    هر h در r.یافته‌ها:
        سرچاپ h.سند، h.امتیاز تطابق متن، h.گزینش‌شده، تایپسنس.برجسته(h، "title")
        سرچاپ h.برجسته، h.برجسته‌ها، h.اطلاعات تطابق متن، h.فاصله برداری، h.فاصله جغرافیایی، h.اطلاعات جستجوی ترکیبی، h.خام.طول()
    پایان
    هر f در r.دسته‌بندی‌ها:
        چاپ f.نام فیلد، f.نمونه‌ای، f.آمار، ":"
        هر fc در f.شمارها:
            چاپ " " + fc.مقدار + "=" + fc.تعداد + " " + fc.برجسته‌شده
        پایان
        سرچاپ ""
    پایان
    ناپایا books := وکتور {} برگردان وکتور<کتاب>
    اگر تایپسنس.یافته ها به نوع(r، books، خ):
        سرچاپ books.طول()
    پایان
    سرچاپ r.پارامترهای درخواست، r.خام.طول()

    ناپایا g := تایپسنس.جستجوی جدید("*"، "")
    g.فیلدهای گروه‌بندی = "genres"
    g.حد گروه = 3
    g.فیلدهای شامل = "id,title"
    rg := تایپسنس.جستجو(ک، "books"، g، خ)
    سرچاپ rg.یافت‌شده، rg.سندهای یافت‌شده
    هر grp در rg.گروه‌ها:
        سرچاپ رشته.بپیوند(grp.کلید، ",")، grp.یافت‌شده، grp.یافته‌ها.طول()
    پایان

    ناپایا v := تایپسنس.جستجوی جدید("*"، "")
    v.پرسمان برداری = "embedding:([0.12, 0.45, 0.87], k: 10)"
    v.فیلدهای مستثنی = "embedding"
    سرچاپ تایپسنس.جستجوی خام(ک، "books"، v، خ)

    ناپایا rag := تایپسنس.جستجوی جدید("کدام کتاب‌ها درباره‌ی بیابان هستند؟"، "title_vector")
    rag.گفتگو = درست
    rag.شناسه مدل گفتگو = "books-assistant"
    rag.شناسه گفتگو = ""
    rag.پیشوند = "false"
    rag.جستجوی کامل = درست
    rag.مهلت جستجو میلی‌ثانیه = 200
    rag.استفاده از کش = درست
    rag.مدت کش = 60
    سرچاپ تایپسنس.جستجو(ک، "books"، rag، خ).گفتگو

    ناپایا nl := تایپسنس.جستجوی جدید("کتاب‌های علمی تخیلی بعد از ۱۹۶۰ به ترتیب سال"، "title")
    nl.پرسمان زبان طبیعی = درست
    nl.شناسه مدل زبان طبیعی = "gpt-4o-nl"
    سرچاپ تایپسنس.جستجو(ک، "books"، nl، خ).پرسمان تفسیرشده

    ناپایا reqs := وکتور {} برگردان وکتور<تایپسنس.درخواست جستجو>
    reqs.بیفزا(تایپسنس.درخواست جستجو { مجموعه = "books"، پارامترها = تایپسنس.جستجوی جدید("تل‌ماسه"، "") })
    reqs.بیفزا(تایپسنس.درخواست جستجو { مجموعه = "authors"، پارامترها = تایپسنس.جستجوی جدید("هربرت"، "name")، کلید دسترسی = "scoped-key" })
    common := تایپسنس.جستجوی جدید(""، "title")
    هر m در تایپسنس.جستجوی چندگانه(ک، reqs، common، خ):
        سرچاپ m.یافت‌شده، m.کد، m.خطا
    پایان
    سرچاپ تایپسنس.جستجوی چندگانه خام(ک، reqs، common، خ).طول()
    u := تایپسنس.جستجوی اجتماع(ک، reqs، common، خ)
    هر h در u.یافته‌ها:
        سرچاپ h.مجموعه، h.شماره جستجو، h.سند
    پایان
    ناپایا rr := تایپسنس.تجزیه نتیجه جستجو(`{"found": 0, "hits": []}`)
    سرچاپ rr.یافت‌شده، rr.کد، rr.خطا، تایپسنس.بیشینه پرسمان دریافت
    تایپسنس.آزادسازی نتیجه(rr)
پایان

درخواست جستجو SearchRequest

ساختار درخواست جستجو
یک جستجو از یک جستجوی چندگانه.
نامانگلیسیگونهتوضیح
مجموعهcollectionرشته = ""مجموعه‌ای که جستجو می‌شود.
پارامترهاparamsپارامترهای جستجوپارامترهای آن.
کلید دسترسیapi_keyرشته = ""یک کلید API دیگر فقط برای همین جستجو، مثل یک کلید محدود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

یافته Hit

ساختار یافته
یک نتیجه‌ی جستجو.
نامانگلیسیگونهتوضیح
سندdocumentرشته = ""سند، به شکل JSON.
امتیاز تطابق متنtext_matchصحیح۶۴ = 0امتیاز ارتباط متنی.
برجستهhighlightرشته = ""برجسته‌ها به تفکیک فیلد، به شکل JSON؛ یکی را با برجسته بخوانید.
برجسته‌هاhighlightsرشته = ""برجسته‌ها به شکل فهرست قدیمی‌تر، به شکل JSON.
اطلاعات تطابق متنtext_match_infoرشته = ""چگونگی ساخته شدن امتیاز، به شکل JSON.
فاصله جغرافیاییgeo_distance_metersرشته = ""فاصله از نقطه‌ی مرتب‌سازی جغرافیایی، به شکل JSON.
فاصله برداریvector_distanceاعشار۶۴ = 0فاصله از بردار پرسمان.
اطلاعات جستجوی ترکیبیhybrid_search_infoرشته = ""چگونگی رتبه‌بندی آن در جستجوی ترکیبی، به شکل JSON.
گزینش‌شدهcuratedمنطقی = نادرستیک قاعده‌ی گزینش آن را در این جایگاه گذاشته است.
مجموعهcollectionرشته = ""مجموعه‌ای که از آن آمده، در جستجوی اجتماعی.
شماره جستجوsearch_indexصحیح = 0کدام جستجوی جستجوی اجتماعی آن را پیدا کرد، از ۰.
خامrawرشته = ""کل یافته، به شکل JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

شمار دسته FacetCount

ساختار شمار دسته
یک مقدار از یک دسته‌بندی.
نامانگلیسیگونهتوضیح
مقدارvalueرشته = ""مقدار.
تعدادcountصحیح۶۴ = 0تعداد یافته‌هایی که آن را دارند.
برجسته‌شدهhighlightedرشته = ""مقدار با پرسمان دسته‌بندیِ برجسته‌شده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

دسته Facet

ساختار دسته
شمار مقدارهای یک فیلد.
نامانگلیسیگونهتوضیح
نام فیلدfield_nameرشته = ""فیلد.
شمارهاcountsوکتور<شمار دسته>مقدارها، پرتکرارترین اول.
نمونه‌ایsampledمنطقی = نادرستشمارها از روی یک نمونه تخمین زده شده‌اند.
آمارstatsرشته = ""کمینه، بیشینه، مجموع و میانگین یک فیلد عددی، به شکل JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

گروه Group

ساختار گروه
یافته‌هایی که مقدار group_by یکسانی دارند.
نامانگلیسیگونهتوضیح
کلیدkeyوکتور<رشته>مقدارهایی که گروه را می‌سازند.
یافت‌شدهfoundصحیح۶۴ = 0تعداد یافته‌های گروه.
یافته‌هاhitsوکتور<یافته>یافته‌های آن، تا group_limit.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

نتیجه جستجو SearchResult

ساختار نتیجه جستجو
نتیجه‌ی یک جستجو.
نامانگلیسیگونهتوضیح
یافت‌شدهfoundصحیح۶۴ = 0تعداد سندهای جورشده، یا در گروه‌بندی تعداد گروه‌ها.
سندهای یافت‌شدهfound_docsصحیح۶۴ = 0تعداد سندهای جورشده، در گروه‌بندی.
تعداد کلout_ofصحیح۶۴ = 0تعداد سندهایی که جستجو شدند.
صفحهpageصحیح = 0صفحه.
زمان جستجو میلی‌ثانیهsearch_time_msصحیح۶۴ = 0مدت زمان جستجو.
قطع جستجوsearch_cutoffمنطقی = نادرستجستجو در search_cutoff_ms متوقف شد.
یافته‌هاhitsوکتور<یافته>یافته‌ها.
گروه‌هاgroupsوکتور<گروه>گروه‌ها، در گروه‌بندی.
دسته‌بندی‌هاfacetsوکتور<دسته>شمار دسته‌بندی‌ها.
پارامترهای درخواستrequest_paramsرشته = ""پارامترهایی که سرور به کار برد، به شکل JSON.
گفتگوconversationرشته = ""پاسخ گفتگو، به شکل JSON.
پرسمان تفسیرشدهparsed_nl_queryرشته = ""آنچه پرسمان زبان طبیعی به آن تبدیل شد، به شکل JSON.
کدcodeصحیح = 0در جستجوی چندگانه، وضعیت HTTP این جستجو وقتی شکست خورد.
خطاerrorرشته = ""در جستجوی چندگانه، دلیل شکست این جستجو.
خامrawرشته = ""کل پاسخ، به شکل JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

قاعده تحلیل AnalyticsRule

ساختار قاعده تحلیل
یک قاعده‌ی تحلیل، به شکل تایپ‌سنس ۳۰.
نامانگلیسیگونهتوضیح
نامnameرشته = ""نام آن.
نوعkindرشته = ""یکی از ثابت‌های قاعده مثل قاعده شمارنده.
مجموعهcollectionرشته = ""مجموعه‌ای که رویدادهایش گردآوری می‌شود.
نوع رویدادevent_typeرشته = ""یکی از ثابت‌های رویداد مثل رویداد کلیک.
برچسب قاعدهrule_tagرشته = ""برچسبی برای فهرست کردن قاعده‌ها.
پارامترهاparamsرشته = ""پارامترهای قاعده، به شکل JSON، مثل {"destination_collection":"pq","limit":100}.
خامrawرشته = ""کل قاعده، به شکل JSON؛ تنها جایی که قاعده‌ی تایپ‌سنس ۲۹ مبدا و مقصدش را نگه می‌دارد.
db-typesense-CreateAnalyticsRule.salam
/*
 * Salam Programming Language (2024-2026)
 *
 *   +-------------------+
 *   |     S A L A M     |
 *   +-------------------+
 *
 * Designed by Seyyed Ali Mohammadiyeh and the Salam Team
 * Born from a decade of language design experience (since 2018)
 *
 * Repository: https://github.com/SalamLang/Salam
 *
 */


واردسازی دیتابیس.تایپسنس

تابع ریشه:
    ک := تایپسنس.جدید("http://localhost:8108"، "admin-key")
    ناپایا خ := تایپسنس.خطا {}

    popular := تایپسنس.قاعده تحلیل {
        نام = "popular-searches"، نوع = تایپسنس.قاعده پرسمان های پرطرفدار، مجموعه = "books"، نوع رویداد = تایپسنس.رویداد جستجو،
        پارامترها = `{"destination_collection": "popular_queries", "limit": 1000}`
    }
    سرچاپ تایپسنس.جیسون قاعده تحلیل(popular)
    made := تایپسنس.ساخت قاعده تحلیل(ک، popular، خ)
    سرچاپ made.نام، made.نوع، made.مجموعه، made.نوع رویداد، made.پارامترها

    clicks := تایپسنس.قاعده تحلیل {
        نام = "book-clicks"، نوع = تایپسنس.قاعده شمارنده، مجموعه = "books"، نوع رویداد = تایپسنس.رویداد کلیک،
        برچسب قاعده = "homepage"، پارامترها = `{"destination_collection": "books", "counter_field": "popularity", "weight": 1}`
    }
    سرچاپ تایپسنس.درج قاعده تحلیل(ک، clicks، خ).برچسب قاعده
    سرچاپ تایپسنس.ساخت قاعده تحلیل از جیسون(ک، `{"name": "no-results", "type": "nohits_queries", "collection": "books", "event_type": "search", "params": {"destination_collection": "nohits", "limit": 100}}`، خ)
    سرچاپ تایپسنس.درج قاعده تحلیل از جیسون(ک، "old-style"، `{"type": "popular_queries", "params": {"source": {"collections": ["books"]}, "destination": {"collection": "pq"}}}`، خ)
    سرچاپ تایپسنس.دریافت قاعده تحلیل(ک، "book-clicks"، خ).خام
    هر r در تایپسنس.فهرست قاعده های تحلیل(ک، "homepage"، خ):
        سرچاپ r.نام، r.نوع
    پایان

    سرچاپ تایپسنس.ارسال رویداد(ک، "book-clicks"، تایپسنس.رویداد کلیک، `{"doc_id": "42", "user_id": "u-7"}`، خ)
    سرچاپ تایپسنس.ارسال رویداد از جیسون(ک، `{"name": "book-clicks", "event_type": "click", "data": {"doc_id": "43", "user_id": "u-7"}}`، خ)
    هر e در تایپسنس.دریافت رویدادها(ک، "u-7"، "book-clicks"، 20، خ):
        سرچاپ e
    پایان
    سرچاپ تایپسنس.تخلیه تحلیل(ک، خ)، تایپسنس.وضعیت تحلیل(ک، خ)
    سرچاپ تایپسنس.حذف قاعده تحلیل(ک، "no-results"، خ)
    سرچاپ تایپسنس.قاعده گزارش، تایپسنس.رویداد تبدیل، تایپسنس.رویداد بازدید، تایپسنس.رویداد سفارشی

    m := تایپسنس.مدل گفتگو {
        شناسه = "books-assistant"، نام مدل = "openai/gpt-4o-mini"، کلید دسترسی = "sk-..."، مجموعه تاریخچه = "conversations"،
        دستور سامانه = "تو از کاتالوگ ما کتاب پیشنهاد می‌کنی."، بیشترین بایت = 16384، مدت نگه‌داری = 86400، شناسه حساب = ""، نشانی سرور = ""، افزوده = ""
    }
    سرچاپ تایپسنس.جیسون مدل گفتگو(m)
    سرچاپ تایپسنس.ساخت مدل گفتگو(ک، m، خ)
    سرچاپ تایپسنس.دریافت مدل گفتگو(ک، "books-assistant"، خ)
    سرچاپ تایپسنس.فهرست مدل های گفتگو(ک، خ).طول()
    سرچاپ تایپسنس.به‌روزرسانی مدل گفتگو(ک، "books-assistant"، تایپسنس.مدل گفتگو { دستور سامانه = "در یک جمله پاسخ بده." }، خ)
    سرچاپ تایپسنس.حذف مدل گفتگو(ک، "books-assistant"، خ)

    سرچاپ تایپسنس.ساخت مدل جستجوی زبانی(ک، `{"id": "gpt-4o-nl", "model_name": "openai/gpt-4o-mini", "api_key": "sk-...", "max_bytes": 16000}`، خ)
    سرچاپ تایپسنس.دریافت مدل جستجوی زبانی(ک، "gpt-4o-nl"، خ)
    سرچاپ تایپسنس.فهرست مدل های جستجوی زبانی(ک، خ).طول()
    سرچاپ تایپسنس.به‌روزرسانی مدل جستجوی زبانی(ک، "gpt-4o-nl"، `{"temperature": 0.0}`، خ)
    سرچاپ تایپسنس.حذف مدل جستجوی زبانی(ک، "gpt-4o-nl"، خ)
پایان

مدل گفتگو ConversationModel

ساختار مدل گفتگو
یک مدل زبانی بزرگ برای جستجوی گفتگویی (RAG). فقط مقدارهایی که تعیین می‌کنید فرستاده می‌شوند.
نامانگلیسیگونهتوضیح
شناسهidرشته = ""شناسه‌ی آن.
نام مدلmodel_nameرشته = ""مدل، مثل openai/gpt-4o.
کلید دسترسیapi_keyرشته = ""کلید ارائه‌دهنده‌ی مدل.
مجموعه تاریخچهhistory_collectionرشته = ""مجموعه‌ای که تاریخچه‌ی گفتگو را نگه می‌دارد.
دستور سامانهsystem_promptرشته = ""دستورهایی که به مدل داده می‌شود.
بیشترین بایتmax_bytesصحیح = 0مقدار زمینه‌ای که مدل دریافت می‌کند.
مدت نگه‌داریttlصحیح = 0مدت نگه‌داری یک گفتگو، به ثانیه.
شناسه حسابaccount_idرشته = ""شناسه‌ی حساب، برای مدل‌های Cloudflare.
نشانی سرورvllm_urlرشته = ""نشانی سرور، برای مدل‌های vLLM.
افزودهextraرشته = ""عضوهای بیشتر به شکل یک شیء JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

فیلد Field

ساختار فیلد
یک فیلد از طرح مجموعه. فقط مقدارهایی که تغییر می‌دهید فرستاده می‌شوند.
نامانگلیسیگونهتوضیح
نامnameرشته = ""نام فیلد، یا یک عبارت باقاعده مثل .*_facet.
نوعkindرشته = ""نوع آن، یکی از ثابت‌های نوع فیلد مثل نوع متن.
دسته‌بندیfacetمنطقی = نادرستمقدارهایش را برای دسته‌بندی بشمار و فیلتر دقیق را ممکن کن.
اختیاریoptionalمنطقی = نادرستسندها می‌توانند آن را نداشته باشند.
نمایهindexمنطقی = درستآن را برای جستجو و فیلتر نمایه کن؛ نادرست فقط ذخیره‌اش می‌کند.
ذخیرهstoreمنطقی = درستآن را روی دیسک نگه دار؛ نادرست بدون ذخیره کردن نمایه‌اش می‌کند.
مرتب‌سازیsortصحیح = 0۱ آن را قابل مرتب‌سازی می‌کند، -1 غیر قابل مرتب‌سازی، و ۰ پیش‌فرض را نگه می‌دارد (عددها مرتب می‌شوند، متن نه).
میانوندیinfixمنطقی = نادرستجورشدن در میانه‌ی واژه‌ها را ممکن کن.
منطقه زبانیlocaleرشته = ""زبان متن، مثل fa یا en.
ریشه‌یابیstemمنطقی = نادرستواژه‌ها را با ریشه‌شان جور کن.
واژه‌نامه ریشه‌یابیstem_dictionaryرشته = ""یک واژه‌نامه‌ی ریشه‌یابی سفارشی که به کار می‌رود.
نمایه بازه‌ایrange_indexمنطقی = نادرستآن را برای فیلترهای بازه‌ای سریع نمایه کن.
ارجاعreferenceرشته = ""پیوند به مجموعه‌ای دیگر، به شکل collection.field.
ارجاع ناهمگامasync_referenceمنطقی = نادرستارجاع به سندی را که هنوز وجود ندارد بپذیر.
تعداد بعدnum_dimصحیح = 0اندازه‌ی بردار، برای یک فیلد برداری float[].
فاصله برداریvec_distرشته = ""فاصله‌ی برداری، cosine یا ip.
جاسازیembedرشته = ""چگونگی ساخت خودکار بردار، به شکل JSON؛ فیلد جاسازی را ببینید.
جداکننده‌های واژهtoken_separatorsوکتور<رشته>نویسه‌های اضافه‌ای که در این فیلد واژه‌ها را از هم جدا می‌کنند.
نمادهای نمایه‌شدهsymbols_to_indexوکتور<رشته>نویسه‌های ویژه‌ای که در این فیلد نگه داشته می‌شوند.
طول برشtruncate_lenصحیح = 0چند نویسه از یک رشته‌ی بلند نمایه شود.
حذفdropمنطقی = نادرستفیلد را در به‌روزرسانی مجموعه حذف می‌کند؛ حذف فیلدها از آن استفاده می‌کند.
افزودهextraرشته = ""عضوهای بیشتر به شکل یک شیء JSON، مثل {"hnsw_params":{"M":16}}.
db-typesense-CreateCollection.salam
/*
 * Salam Programming Language (2024-2026)
 *
 *   +-------------------+
 *   |     S A L A M     |
 *   +-------------------+
 *
 * Designed by Seyyed Ali Mohammadiyeh and the Salam Team
 * Born from a decade of language design experience (since 2018)
 *
 * Repository: https://github.com/SalamLang/Salam
 *
 */


واردسازی دیتابیس.تایپسنس

تابع ریشه:
    ک := تایپسنس.جدید("http://localhost:8108"، "admin-key")
    ناپایا خ := تایپسنس.خطا {}

    ناپایا s := تایپسنس.طرح { نام = "books_v2"، فیلد مرتب‌سازی پیش‌فرض = "year"، فیلدهای تودرتو = درست }
    s.فیلدها.بیفزا(تایپسنس.فیلد جدید("title"، تایپسنس.نوع متن))
    s.فیلدها.بیفزا(تایپسنس.فیلد { نام = "title_fa"، نوع = تایپسنس.نوع متن، منطقه زبانی = "fa"، ریشه‌یابی = درست، اختیاری = درست })
    s.فیلدها.بیفزا(تایپسنس.فیلد دسته بندی("year"، تایپسنس.نوع عدد۳۲))
    s.فیلدها.بیفزا(تایپسنس.فیلد دسته بندی("genres"، تایپسنس.نوع آرایه متن))
    s.فیلدها.بیفزا(تایپسنس.فیلد { نام = "price"، نوع = تایپسنس.نوع اعشاری، نمایه بازه‌ای = درست })
    s.فیلدها.بیفزا(تایپسنس.فیلد { نام = "isbn"، نوع = تایپسنس.نوع متن، نمایه = نادرست، اختیاری = درست })
    s.فیلدها.بیفزا(تایپسنس.فیلد { نام = "author_id"، نوع = تایپسنس.نوع متن، ارجاع = "authors.id" })
    s.فیلدها.بیفزا(تایپسنس.فیلد { نام = "location"، نوع = تایپسنس.نوع نقطه جغرافیایی، اختیاری = درست })
    s.فیلدها.بیفزا(تایپسنس.فیلد بردار("embedding"، 384))
    ناپایا from := وکتور {} برگردان وکتور<رشته>
    from.بیفزا("title")
    s.فیلدها.بیفزا(تایپسنس.فیلد جاسازی("title_vector"، from، "ts/all-MiniLM-L12-v2"))
    s.فیلدها.بیفزا(تایپسنس.فیلد { نام = "meta.*"، نوع = تایپسنس.نوع خودکار، اختیاری = درست })
    s.نمادهای نمایه‌شده.بیفزا("+")
    s.جداکننده‌های واژه.بیفزا("-")
    s.فراداده = `{"owner": "کاتالوگ"}`
    سرچاپ تایپسنس.جیسون طرح(s)

    col := تایپسنس.ساخت مجموعه(ک، s، خ)
    اگر تایپسنس.تداخل دارد(خ):
        سرچاپ "books_v2 از قبل وجود دارد"
    پایان
    سرچاپ col.نام، col.تعداد سندها، col.زمان ساخت، col.فیلدها.طول()
    هر f در col.فیلدها:
        سرچاپ f.نام، f.نوع، f.دسته‌بندی، f.اختیاری، f.مرتب‌سازی، f.نمایه، f.ذخیره
    پایان

    اگر تایپسنس.مجموعه وجود دارد(ک، "books_v2"، خ):
        سرچاپ تایپسنس.دریافت مجموعه(ک، "books_v2"، خ).فیلد مرتب‌سازی پیش‌فرض
    پایان
    هر x در تایپسنس.فهرست مجموعه ها(ک، خ):
        سرچاپ x.نام، x.تعداد سندها
    پایان
    ناپایا skip := وکتور {} برگردان وکتور<رشته>
    skip.بیفزا("fields")
    سرچاپ تایپسنس.صفحه مجموعه ها(ک، 0، 20، skip، خ).طول()

    ناپایا add := وکتور {} برگردان وکتور<تایپسنس.فیلد>
    add.بیفزا(تایپسنس.فیلد دسته بندی("publisher"، تایپسنس.نوع متن))
    سرچاپ تایپسنس.افزودن فیلدها(ک، "books_v2"، add، خ)
    ناپایا drop := وکتور {} برگردان وکتور<رشته>
    drop.بیفزا("isbn")
    سرچاپ تایپسنس.حذف فیلدها(ک، "books_v2"، drop، خ)
    سرچاپ تایپسنس.تنظیم فراداده مجموعه(ک، "books_v2"، `{"owner": "تیم جستجو"}`، خ)
    سرچاپ تایپسنس.به‌روزرسانی مجموعه(ک، "books_v2"، `{"synonym_sets": ["book-words"]}`، خ)

    a := تایپسنس.درج نام مستعار(ک، "books"، "books_v2"، خ)
    سرچاپ a.نام، a.نام مجموعه
    سرچاپ تایپسنس.دریافت نام مستعار(ک، "books"، خ).نام مجموعه
    هر al در تایپسنس.فهرست نام های مستعار(ک، خ):
        سرچاپ al.نام، "->"، al.نام مجموعه
    پایان
    سرچاپ تایپسنس.رونوشت مجموعه(ک، "books_v2"، "books_v3"، خ).نام
    سرچاپ تایپسنس.خالی کردن مجموعه(ک، "books_v3"، خ)
    سرچاپ تایپسنس.حذف مجموعه(ک، "books_v3"، خ).نام
    سرچاپ تایپسنس.حذف نام مستعار(ک، "old_books"، خ).نام
    سرچاپ تایپسنس.ساخت مجموعه از جیسون(ک، `{"name": "authors", "fields": [{"name": "name", "type": "string"}]}`، خ).نام
    سرچاپ تایپسنس.جیسون فیلد(تایپسنس.فیلد جدید("pages"، تایپسنس.نوع عدد۳۲))
    سرچاپ تایپسنس.نوع متن ستاره، تایپسنس.نوع آرایه عدد۳۲، تایپسنس.نوع عدد۶۴، تایپسنس.نوع آرایه عدد۶۴، تایپسنس.نوع آرایه اعشاری
    سرچاپ تایپسنس.نوع بولی، تایپسنس.نوع آرایه بولی، تایپسنس.نوع آرایه نقطه جغرافیایی، تایپسنس.نوع چندضلعی جغرافیایی
    سرچاپ تایپسنس.نوع شیء، تایپسنس.نوع آرایه شیء، تایپسنس.نوع تصویر
پایان

طرح Schema

ساختار طرح
طرح یک مجموعه برای ساخت مجموعه.
نامانگلیسیگونهتوضیح
نامnameرشته = ""نام مجموعه.
فیلدهاfieldsوکتور<فیلد>فیلدها.
فیلد مرتب‌سازی پیش‌فرضdefault_sorting_fieldرشته = ""یک فیلد عددی که وقتی جستجو ترتیبی نمی‌دهد بر اساس آن مرتب می‌شود.
فیلدهای تودرتوenable_nested_fieldsمنطقی = نادرستفیلدهای شیء را ممکن کن.
جداکننده‌های واژهtoken_separatorsوکتور<رشته>نویسه‌های اضافه‌ای که واژه‌ها را از هم جدا می‌کنند.
نمادهای نمایه‌شدهsymbols_to_indexوکتور<رشته>نویسه‌های ویژه‌ای که نگه داشته می‌شوند، مثل + برای C++.
دسته‌های مترادفsynonym_setsوکتور<رشته>دسته‌های مترادفی که این مجموعه به کار می‌برد (تایپ‌سنس ۳۰).
دسته‌های گزینشcuration_setsوکتور<رشته>دسته‌های گزینشی که این مجموعه به کار می‌برد (تایپ‌سنس ۳۰).
فرادادهmetadataرشته = ""هر شیء JSON که همراه مجموعه نگه داشته شود.
مدل پرسمان صوتیvoice_query_modelرشته = ""مدل گفتار به نوشتار برای جستجوی صوتی، به شکل JSON.
افزودهextraرشته = ""عضوهای بیشتر به شکل یک شیء JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

مجموعه Collection

ساختار مجموعه
یک مجموعه، همان‌طور که سرور شرحش می‌دهد.
نامانگلیسیگونهتوضیح
نامnameرشته = ""نام آن.
تعداد سندهاnum_documentsصحیح۶۴ = 0تعداد سندهایی که دارد.
زمان ساختcreated_atصحیح۶۴ = 0زمان ساختش، به صورت زمان یونیکس.
فیلد مرتب‌سازی پیش‌فرضdefault_sorting_fieldرشته = ""فیلد پیش‌فرض مرتب‌سازی.
فیلدهای تودرتوenable_nested_fieldsمنطقی = نادرستآیا فیلدهای شیء مجازند.
فیلدهاfieldsوکتور<فیلد>فیلدهای آن، با همه‌ی پیش‌فرض‌های پرشده.
جداکننده‌های واژهtoken_separatorsوکتور<رشته>جداکننده‌های اضافه‌ی واژه.
نمادهای نمایه‌شدهsymbols_to_indexوکتور<رشته>نویسه‌های ویژه‌ای که نگه می‌دارد.
دسته‌های مترادفsynonym_setsوکتور<رشته>دسته‌های مترادفی که به کار می‌برد.
دسته‌های گزینشcuration_setsوکتور<رشته>دسته‌های گزینشی که به کار می‌برد.
فرادادهmetadataرشته = ""فراداده‌ی آن، به شکل JSON.
خامrawرشته = ""کل پاسخ، به شکل JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نام مستعار Alias

ساختار نام مستعار
یک نام مستعار: نام دومی که به یک مجموعه اشاره می‌کند.
نامانگلیسیگونهتوضیح
نامnameرشته = ""نام مستعار.
نام مجموعهcollection_nameرشته = ""مجموعه‌ای که به آن اشاره می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

مترادف Synonym

ساختار مترادف
یک مترادف: واژه‌هایی که باید یکدیگر را پیدا کنند.
نامانگلیسیگونهتوضیح
شناسهidرشته = ""شناسه‌ی آن.
مترادف‌هاsynonymsوکتور<رشته>واژه‌ها. بدون ریشه همه‌شان یک معنی دارند.
واژه پایهrootرشته = ""اگر تعیین شود، جستجوی ریشه واژه‌های دیگر را هم پیدا می‌کند، ولی برعکس نه.
منطقه زبانیlocaleرشته = ""زبان واژه‌ها، مثل fa.
نمادهای نمایه‌شدهsymbols_to_indexوکتور<رشته>نویسه‌های ویژه‌ای در واژه‌ها که باید نگه داشته شوند.
db-typesense-UpsertSynonymSet.salam
/*
 * Salam Programming Language (2024-2026)
 *
 *   +-------------------+
 *   |     S A L A M     |
 *   +-------------------+
 *
 * Designed by Seyyed Ali Mohammadiyeh and the Salam Team
 * Born from a decade of language design experience (since 2018)
 *
 * Repository: https://github.com/SalamLang/Salam
 *
 */


واردسازی دیتابیس.تایپسنس

تابع ریشه:
    ک := تایپسنس.جدید("http://localhost:8108"، "admin-key")
    ناپایا خ := تایپسنس.خطا {}

    ناپایا words := وکتور {} برگردان وکتور<رشته>
    words.بیفزا("کتاب")
    words.بیفزا("رمان")
    words.بیفزا("book")
    ناپایا items := وکتور {} برگردان وکتور<تایپسنس.مترادف>
    items.بیفزا(تایپسنس.مترادف { شناسه = "books"، مترادف‌ها = words })
    set := تایپسنس.درج دسته مترادف(ک، "book-words"، items، خ)
    سرچاپ set.نام، set.مترادف‌ها.طول()
    ناپایا one := وکتور {} برگردان وکتور<رشته>
    one.بیفزا("جلدشومیز")
    s := تایپسنس.مترادف { شناسه = "paper"، واژه پایه = "کتاب"، مترادف‌ها = one، منطقه زبانی = "fa"، نمادهای نمایه‌شده = وکتور {} برگردان وکتور<رشته> }
    سرچاپ تایپسنس.جیسون مترادف(s)
    سرچاپ تایپسنس.درج مترادف دسته(ک، "book-words"، s، خ).واژه پایه
    سرچاپ تایپسنس.دریافت مترادف دسته(ک، "book-words"، "paper"، خ).مترادف‌ها.طول()
    سرچاپ تایپسنس.فهرست مترادف های دسته(ک، "book-words"، خ).طول()، تایپسنس.دریافت دسته مترادف(ک، "book-words"، خ).مترادف‌ها.طول()، تایپسنس.فهرست دسته های مترادف(ک، خ).طول()
    سرچاپ تایپسنس.حذف مترادف دسته(ک، "book-words"، "paper"، خ)

    سرچاپ تایپسنس.درج مترادف(ک، "books"، s، خ).شناسه
    سرچاپ تایپسنس.دریافت مترادف(ک، "books"، "paper"، خ).واژه پایه، تایپسنس.فهرست مترادف ها(ک، "books"، خ).طول()
    سرچاپ تایپسنس.حذف مترادف(ک، "books"، "paper"، خ)

    ناپایا pins := وکتور {} برگردان وکتور<تایپسنس.سنجاق>
    pins.بیفزا(تایپسنس.سنجاق { شناسه = "42"، جایگاه = 1 })
    ناپایا hide := وکتور {} برگردان وکتور<رشته>
    hide.بیفزا("13")
    ناپایا tags := وکتور {} برگردان وکتور<رشته>
    tags.بیفزا("summer-sale")
    rule := تایپسنس.قاعده گزینش {
        شناسه = "promote-dune"، پرسمان = "تل‌ماسه"، نوع تطابق = تایپسنس.تطابق دقیق، سنجاق‌شده‌ها = pins، پنهان‌شده‌ها = hide،
        فیلتر یافته‌های سنجاق‌شده = درست، شروع اعتبار = 1924992000، فراداده = `{"campaign": "تابستان"}`
    }
    سرچاپ تایپسنس.جیسون گزینش(rule)
    ناپایا rules := وکتور {} برگردان وکتور<تایپسنس.قاعده گزینش>
    rules.بیفزا(rule)
    rules.بیفزا(تایپسنس.قاعده گزینش {
        شناسه = "sale"، برچسب‌ها = tags، فیلتر قاعده = "on_sale:=true"، فیلتر = "stock:>0"، ترتیب = "price:asc"،
        نوع تطابق = تایپسنس.تطابق شامل، پرسمان جایگزین = ""، حذف واژه‌های جورشده = درست، توقف پردازش = نادرست،
        انتهای اعتبار = 1956528000، افزوده = ""
    })
    cs := تایپسنس.درج دسته گزینش(ک، "promotions"، rules، خ)
    سرچاپ cs.نام، cs.قاعده‌ها.طول()
    سرچاپ تایپسنس.درج قاعده دسته گزینش(ک، "promotions"، rule، خ).شناسه
    سرچاپ تایپسنس.دریافت قاعده دسته گزینش(ک، "promotions"، "sale"، خ).ترتیب، تایپسنس.فهرست قاعده های دسته گزینش(ک، "promotions"، خ).طول()
    سرچاپ تایپسنس.دریافت دسته گزینش(ک، "promotions"، خ).قاعده‌ها.طول()، تایپسنس.فهرست دسته های گزینش(ک، خ).طول()
    سرچاپ تایپسنس.حذف قاعده دسته گزینش(ک، "promotions"، "sale"، خ)
    سرچاپ تایپسنس.به‌روزرسانی مجموعه(ک، "books"، `{"synonym_sets": ["book-words"], "curation_sets": ["promotions"]}`، خ)

    سرچاپ تایپسنس.درج بازنویسی(ک، "books"، rule، خ).شناسه
    سرچاپ تایپسنس.دریافت بازنویسی(ک، "books"، "promote-dune"، خ).پرسمان، تایپسنس.فهرست بازنویسی ها(ک، "books"، خ).طول()
    سرچاپ تایپسنس.حذف بازنویسی(ک، "books"، "promote-dune"، خ)

    ناپایا listing := تایپسنس.جستجوی جدید(""، "title,description")
    listing.اندازه صفحه = 24
    listing.ترتیب = "popularity:desc"
    pr := تایپسنس.درج پیش تنظیم جستجو(ک، "listing"، listing، خ)
    سرچاپ pr.نام، pr.مقدار
    سرچاپ تایپسنس.درج پیش تنظیم(ک، "listing-raw"، `{"query_by": "title"}`، خ).مقدار
    سرچاپ تایپسنس.دریافت پیش تنظیم(ک، "listing"، خ).مقدار
    هر x در تایپسنس.فهرست پیش تنظیم ها(ک، خ):
        سرچاپ x.نام
    پایان
    سرچاپ تایپسنس.حذف پیش تنظیم(ک، "listing-raw"، خ)

    ناپایا sw := وکتور {} برگردان وکتور<رشته>
    sw.بیفزا("و")
    sw.بیفزا("از")
    st := تایپسنس.درج کلمات توقف(ک، "persian"، sw، "fa"، خ)
    سرچاپ st.شناسه، st.منطقه زبانی، st.کلمات توقف.طول()
    سرچاپ تایپسنس.دریافت کلمات توقف(ک، "persian"، خ).کلمات توقف.طول()، تایپسنس.فهرست کلمات توقف(ک، خ).طول()
    سرچاپ تایپسنس.حذف کلمات توقف(ک، "persian"، خ)

    ناپایا stem := وکتور {} برگردان وکتور<تایپسنس.ریشه کلمه>
    stem.بیفزا(تایپسنس.ریشه کلمه { واژه = "کتب"، واژه پایه = "کتاب" })
    stem.بیفزا(تایپسنس.ریشه کلمه { واژه = "علوم"، واژه پایه = "علم" })
    سرچاپ تایپسنس.درون ریزی واژه نامه ریشه یابی(ک، "irregular"، stem، خ)
    سرچاپ تایپسنس.درون ریزی ریشه یابی جیسون خطی(ک، "irregular"، `{"word": "کلمات", "root": "کلمه"}`، خ)
    d := تایپسنس.دریافت واژه نامه ریشه یابی(ک، "irregular"، خ)
    سرچاپ d.شناسه، d.واژه‌ها.طول()
    سرچاپ تایپسنس.فهرست واژه نامه های ریشه یابی(ک، خ).طول()
    سرچاپ تایپسنس.حذف واژه نامه ریشه یابی(ک، "irregular"، خ)
    سرچاپ تایپسنس.حذف دسته گزینش(ک، "promotions"، خ)، تایپسنس.حذف دسته مترادف(ک، "book-words"، خ)
پایان

دسته مترادف SynonymSet

ساختار دسته مترادف
دسته‌ای نام‌دار از مترادف‌ها که هر مجموعه‌ای که نامش را بیاورد از آن استفاده می‌کند (تایپ‌سنس ۳۰).
نامانگلیسیگونهتوضیح
نامnameرشته = ""نام آن.
مترادف‌هاitemsوکتور<مترادف>مترادف‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

سنجاق Pin

ساختار سنجاق
سندی که در جایگاهی از نتیجه‌ها سنجاق شده است.
نامانگلیسیگونهتوضیح
شناسهidرشته = ""شناسه‌ی سند.
جایگاهpositionصحیح = 0جایگاه، از ۱.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

قاعده گزینش CurationRule

ساختار قاعده گزینش
یک قاعده‌ی گزینش (پیش از تایپ‌سنس ۳۰ بازنویسی نام داشت): وقتی پرسمان جور شود، نتیجه‌ها را سنجاق، پنهان، فیلتر یا مرتب می‌کند.
نامانگلیسیگونهتوضیح
شناسهidرشته = ""شناسه‌ی آن.
پرسمانqueryرشته = ""متن پرسمانی که با آن جور می‌شود.
نوع تطابقmatch_typeرشته = ""تطابق دقیق یا تطابق شامل.
فیلتر قاعدهrule_filter_byرشته = ""وقتی جستجو این فیلتر را به کار ببرد قاعده را اعمال کن.
برچسب‌هاtagsوکتور<رشته>وقتی جستجو یکی از این برچسب‌ها را در override_tags بفرستد قاعده را اعمال کن.
سنجاق‌شده‌هاincludesوکتور<سنجاق>سندهایی که سنجاق می‌شوند.
پنهان‌شده‌هاexcludesوکتور<رشته>شناسه‌ی سندهایی که پنهان می‌شوند.
فیلترfilter_byرشته = ""فیلتری که به جستجو افزوده می‌شود.
ترتیبsort_byرشته = ""ترتیبی که به جای ترتیب جستجو به کار می‌رود.
پرسمان جایگزینreplace_queryرشته = ""پرسمانی که به جای پرسمان اصلی جستجو می‌شود.
حذف واژه‌های جورشدهremove_matched_tokensمنطقی = نادرستواژه‌های جورشده را از پرسمان بردار.
فیلتر یافته‌های سنجاق‌شدهfilter_curated_hitsمنطقی = نادرستفیلتر جستجو را روی سندهای سنجاق‌شده هم اعمال کن.
توقف پردازشstop_processingمنطقی = درستوقتی این قاعده جور شد همین‌جا بایست؛ نادرست اجازه می‌دهد قاعده‌های بعدی هم اعمال شوند.
شروع اعتبارeffective_from_tsصحیح۶۴ = 0زمان یونیکسی که قاعده پیش از آن کاری نمی‌کند؛ ۰ یعنی همیشه.
انتهای اعتبارeffective_to_tsصحیح۶۴ = 0زمان یونیکسی که قاعده پس از آن کاری نمی‌کند؛ ۰ یعنی هرگز.
فرادادهmetadataرشته = ""هر شیء JSON که وقتی قاعده اعمال شد همراه نتیجه‌ها برگردد.
افزودهextraرشته = ""عضوهای بیشتر به شکل یک شیء JSON که همان‌طور که هستند در قاعده ادغام می‌شوند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

دسته گزینش CurationSet

ساختار دسته گزینش
دسته‌ای نام‌دار از قاعده‌های گزینش که هر مجموعه‌ای که نامش را بیاورد از آن استفاده می‌کند (تایپ‌سنس ۳۰).
نامانگلیسیگونهتوضیح
نامnameرشته = ""نام آن.
قاعده‌هاitemsوکتور<قاعده گزینش>قاعده‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

پیش تنظیم Preset

ساختار پیش تنظیم
پارامترهای جستجوی ذخیره‌شده که با پارامترهای جستجو.preset به کار می‌روند.
نامانگلیسیگونهتوضیح
نامnameرشته = ""نام آن.
مقدارvalueرشته = ""پارامترها، به شکل JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

کلمات توقف Stopwords

ساختار کلمات توقف
دسته‌ای از واژه‌ها که در پرسمان‌ها نادیده گرفته می‌شوند.
نامانگلیسیگونهتوضیح
شناسهidرشته = ""شناسه‌ی آن که در پارامترهای جستجو.stopwords به کار می‌رود.
کلمات توقفstopwordsوکتور<رشته>واژه‌ها.
منطقه زبانیlocaleرشته = ""زبانشان.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

ریشه کلمه StemWord

ساختار ریشه کلمه
یک واژه و ریشه‌ای که به آن می‌رسد.
نامانگلیسیگونهتوضیح
واژهwordرشته = ""واژه.
واژه پایهrootرشته = ""ریشه‌ی آن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

واژه نامه ریشه یابی StemmingDictionary

ساختار واژه نامه ریشه یابی
یک واژه‌نامه‌ی ریشه‌یابی سفارشی که با فیلد.stem_dictionary به کار می‌رود.
نامانگلیسیگونهتوضیح
شناسهidرشته = ""شناسه‌ی آن.
واژه‌هاwordsوکتور<ریشه کلمه>واژه‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

مشخصات کلید KeySpec

ساختار مشخصات کلید
یک کلید API تازه.
نامانگلیسیگونهتوضیح
توضیحdescriptionرشته = ""کاربرد کلید.
کنش‌هاactionsوکتور<رشته>کارهایی که اجازه دارد، مثل documents:search یا *.
مجموعه‌هاcollectionsوکتور<رشته>مجموعه‌هایی که می‌تواند به کار ببرد؛ * برای همه، و الگوهایی مثل org_.* هم کار می‌کنند.
زمان انقضاexpires_atصحیح۶۴ = 0زمان یونیکسی که از کار می‌افتد؛ ۰ یعنی هرگز.
مقدارvalueرشته = ""متن کلید؛ اگر خالی باشد سرور خودش یکی می‌سازد.
حذف خودکارautodeleteمنطقی = نادرستکلید پس از انقضا حذف شود.
db-typesense-CreateKey.salam
/*
 * Salam Programming Language (2024-2026)
 *
 *   +-------------------+
 *   |     S A L A M     |
 *   +-------------------+
 *
 * Designed by Seyyed Ali Mohammadiyeh and the Salam Team
 * Born from a decade of language design experience (since 2018)
 *
 * Repository: https://github.com/SalamLang/Salam
 *
 */


واردسازی دیتابیس.تایپسنس

تابع ریشه:
    ک := تایپسنس.جدید("http://localhost:8108"، "admin-key")
    ناپایا خ := تایپسنس.خطا {}

    ناپایا books := وکتور {} برگردان وکتور<رشته>
    books.بیفزا("books")
    search := تایپسنس.کلید فقط جستجو(ک، "جستجوی وب‌سایت"، books، خ)
    سرچاپ search.شناسه، search.مقدار، search.کنش‌ها.طول()، search.مجموعه‌ها.بگیر(0)

    ناپایا actions := وکتور {} برگردان وکتور<رشته>
    actions.بیفزا("documents:*")
    actions.بیفزا("collections:get")
    ناپایا orgs := وکتور {} برگردان وکتور<رشته>
    orgs.بیفزا("org_.*")
    spec := تایپسنس.مشخصات کلید { توضیح = "نویسنده‌ی مستاجرها"، کنش‌ها = actions، مجموعه‌ها = orgs، زمان انقضا = 1924992000، حذف خودکار = درست }
    سرچاپ تایپسنس.جیسون مشخصات کلید(spec)
    k := تایپسنس.ساخت کلید(ک، spec، خ)
    سرچاپ k.مقدار، k.زمان انقضا، k.حذف خودکار

    ناپایا all := وکتور {} برگردان وکتور<رشته>
    all.بیفزا(تایپسنس.کنش کلید همه)
    admin := تایپسنس.ساخت کلید(ک، تایپسنس.مشخصات کلید { توضیح = "مدیر"، کنش‌ها = all، مجموعه‌ها = all، مقدار = "my-chosen-admin-key" }، خ)
    سرچاپ admin.شناسه

    g := تایپسنس.دریافت کلید(ک، k.شناسه، خ)
    سرچاپ g.پیشوند مقدار، g.توضیح
    هر key در تایپسنس.فهرست کلیدها(ک، خ):
        سرچاپ key.شناسه، key.پیشوند مقدار، key.توضیح، key.کنش‌ها.طول()، key.مجموعه‌ها.طول()، key.زمان انقضا
    پایان
    سرچاپ تایپسنس.حذف کلید(ک، k.شناسه، خ)

    scope := تایپسنس.پارامترهای جستجو { فیلتر = "company_id:=124"، فیلدهای مستثنی = "salary" }
    scoped := تایپسنس.کلید جستجوی محدود(search.مقدار، scope، 1924992000)
    سرچاپ scoped
    سرچاپ تایپسنس.ساخت کلید جستجوی محدود(search.مقدار، `{"filter_by":"user_id:=42"}`)
    ناپایا browser := تایپسنس.جدید("https://search.example.com"، scoped)
    دیرکن تایپسنس.آزادسازی(browser)
    سرچاپ تایپسنس.جستجو(browser، "books"، تایپسنس.جستجوی جدید("تل‌ماسه"، "title")، خ).یافت‌شده
    سرچاپ تایپسنس.کنش کلید جستجو
پایان

کلید Key

ساختار کلید
یک کلید API.
نامانگلیسیگونهتوضیح
شناسهidصحیح۶۴ = 0شناسه‌ی آن.
مقدارvalueرشته = ""متن کامل کلید؛ فقط هنگام ساخت کلید برگردانده می‌شود.
پیشوند مقدارvalue_prefixرشته = ""چند نویسه‌ی اول کلید، که هنگام خواندن دوباره‌ی آن برگردانده می‌شود.
توضیحdescriptionرشته = ""کاربرد آن.
کنش‌هاactionsوکتور<رشته>کارهایی که اجازه دارد.
مجموعه‌هاcollectionsوکتور<رشته>مجموعه‌هایی که می‌تواند به کار ببرد.
زمان انقضاexpires_atصحیح۶۴ = 0زمان از کار افتادنش، به صورت زمان یونیکس.
حذف خودکارautodeleteمنطقی = نادرستآیا پس از انقضا حذف می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateKey.salam

کلاینت Client

ساختار کلاینت
اتصال به یک سرور یا خوشه‌ی تایپ‌سنس. با جدید یا خوشه جدید بسازیدش و با آزادسازی آزادش کنید.
نامانگلیسیگونهتوضیح
گره‌هاnodesوکتور<رشته>نشانی گره‌ها، مثل http://localhost:8108؛ مسیری که بعد از میزبان بیاید به عنوان پیشوند نگه داشته می‌شود.
نزدیک‌ترینnearestرشته = ""گرهی که پیش از بقیه امتحان می‌شود، مثلا گره همان منطقه؛ خالی یعنی هیچ.
کلید دسترسیapi_keyرشته = ""کلیدی که در سرآیند X-TYPESENSE-API-KEY فرستاده می‌شود.
مهلت میلی‌ثانیهtimeout_msصحیح = 10000بیشترین زمان یک درخواست، به میلی‌ثانیه؛ ۰ یعنی بی‌نهایت صبر کن.
تعداد کوششretriesصحیح = 3چند بار دیگر بعد از شکست یک گره تلاش شود.
فاصله کوشش میلی‌ثانیهretry_interval_msصحیح = 100مکث میان دو تلاش، به میلی‌ثانیه.
بازه سلامت‌سنجی میلی‌ثانیهhealthcheck_msصحیح = 60000مدتی که گره شکست‌خورده کنار گذاشته می‌شود، به میلی‌ثانیه.
سرآیندهاheadersوکتور<رشته>سطرهای سرآیند اضافه که با افزودن سرصفحه افزوده شده‌اند.
وضعیتstateوکتور<صحیح۶۴>داخلی: جایگاه چرخشی و زمانی که هر گره دوباره می‌تواند امتحان شود.
db-typesense-Client.salam
/*
 * Salam Programming Language (2024-2026)
 *
 *   +-------------------+
 *   |     S A L A M     |
 *   +-------------------+
 *
 * Designed by Seyyed Ali Mohammadiyeh and the Salam Team
 * Born from a decade of language design experience (since 2018)
 *
 * Repository: https://github.com/SalamLang/Salam
 *
 */


واردسازی دیتابیس.تایپسنس

تابع ریشه:
    ناپایا nodes := وکتور {} برگردان وکتور<رشته>
    nodes.بیفزا("http://ts-1:8108")
    nodes.بیفزا("http://ts-2:8108")
    nodes.بیفزا("http://ts-3:8108")
    ناپایا ک := تایپسنس.خوشه جدید(nodes، "admin-key")
    دیرکن تایپسنس.آزادسازی(ک)
    تایپسنس.تنظیم نزدیک‌ترین گره(ک، "http://ts-local:8108")
    تایپسنس.افزودن گره(ک، "http://ts-4:8108")
    تایپسنس.افزودن سرصفحه(ک، "X-Request-Source"، "salam")
    ک.مهلت میلی‌ثانیه = 5000
    ک.تعداد کوشش = 2
    ک.فاصله کوشش میلی‌ثانیه = 200
    ک.بازه سلامت‌سنجی میلی‌ثانیه = 30000

    ناپایا خ := تایپسنس.خطا {}
    اگر وارونه تایپسنس.سلامت(ک، خ):
        سرچاپ "آماده نیست: " + تایپسنس.متن خطا(خ)
        برگشت 1
    پایان
    سرچاپ تایپسنس.سالم است(ک)، تایپسنس.گره سالم است(ک، 0)، تایپسنس.گره سالم است(ک، -1)
    سرچاپ "نسخه‌ی سرور"، تایپسنس.نسخه سرور(ک، خ)، تایپسنس.اشکال زدایی(ک، خ)
    st := تایپسنس.وضعیت(ک، خ)
    سرچاپ st.وضعیت، st.اندیس ثبت‌شده، st.نوشتن‌های صف‌شده
    سرچاپ تایپسنس.آمار(ک، خ)
    سرچاپ تایپسنس.سنجه ها(ک، خ)
    سرچاپ تایپسنس.ساخت تصویر لحظه ای(ک، "/data/snapshots/today"، خ)
    سرچاپ تایپسنس.رای گیری(ک، خ)، تایپسنس.پاک کردن حافظه نهان(ک، خ)، تایپسنس.فشرده سازی پایگاه(ک، خ)، تایپسنس.بازنشانی همتاها(ک، خ)
    سرچاپ تایپسنس.تغییرات طرح(ک، خ).طول()
    سرچاپ تایپسنس.تنظیم گزارش درخواست کند(ک، 1000، خ)، تایپسنس.به‌روزرسانی پیکربندی(ک، `{"healthy-read-lag": 1000}`، خ)

    body := تایپسنس.درخواست(ک، "GET"، "/collections?limit=1"، ""، خ)
    اگر وارونه تایپسنس.موفق(خ):
        سرچاپ خ.وضعیت، خ.نوع، خ.پیام
        سرچاپ خ.نوع == تایپسنس.نوع اچ تی تی پی، خ.نوع == تایپسنس.نوع شبکه، خ.نوع == تایپسنس.نوع نامعتبر، خ.نوع == تایپسنس.نوع رمزگشایی
        سرچاپ تایپسنس.پیدا نشد(خ)، تایپسنس.تداخل دارد(خ)
        برگشت 1
    پایان
    سرچاپ body
    سرچاپ تایپسنس.درخواست با نوع(ک، "POST"، "/stemming/dictionaries/import?id=plurals"، "text/plain"، `{"word":"کتب","root":"کتاب"}`، خ)
    سرچاپ تایپسنس.نسخه کلاینت، ک.گره‌ها.طول()، ک.نزدیک‌ترین، ک.کلید دسترسی.طول()، ک.سرآیندها.طول()، ک.وضعیت.طول()
    single := تایپسنس.جدید("localhost:8108"، "admin-key")
    سرچاپ single.گره‌ها.بگیر(0)
پایان

خطا Error

ساختار خطا
آنچه در آخرین فراخوانی خراب شد. اگر فراخوانی موفق بوده باشد خالی است.
نامانگلیسیگونهتوضیح
وضعیتstatusصحیح = 0وضعیت HTTP، یا ۰ وقتی پاسخی نیامد.
نوعkindرشته = ""یکی از ثابت‌های نوع خطا مثل نوع شبکه، یا خالی وقتی فراخوانی موفق بود.
پیامmessageرشته = ""پیام سرور، یا شرحی از شکست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

وضعیت خوشه ClusterStatus

ساختار وضعیت خوشه
وضعیت raft گرهی که پاسخ داد.
نامانگلیسیگونهتوضیح
وضعیتstateرشته = ""LEADER، FOLLOWER یا یک وضعیت دیگر raft.
اندیس ثبت‌شدهcommitted_indexصحیح۶۴ = 0آخرین اندیس ثبت‌شده‌ی raft.
نوشتن‌های صف‌شدهqueued_writesصحیح۶۴ = 0نوشتن‌هایی که در صف اعمال مانده‌اند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

گزینه های نوشتن WriteOptions

ساختار گزینه های نوشتن
گزینه‌های نوشتن سندها. فیلدهای خالی فرستاده نمی‌شوند.
نامانگلیسیگونهتوضیح
کنشactionرشته = ""یکی از ثابت‌های کنش مثل کنش درج؛ خالی یعنی ساخت.
مقدارهای ناپاکdirty_valuesرشته = ""یکی از ثابت‌های مقدار ناپاک مثل ناپاک رد.
اندازه دستهbatch_sizeصحیح = 0تعداد سندهایی که سرور هنگام درون‌ریزی یک‌جا نمایه می‌کند.
بازگرداندن شناسهreturn_idمنطقی = نادرستشناسه‌ی هر سند را در نتیجه‌ی درون‌ریزی بیاور.
بازگرداندن سندreturn_docمنطقی = نادرستخود هر سند را در نتیجه‌ی درون‌ریزی بیاور.
اندازه دسته جاسازی دورremote_embedding_batch_sizeصحیح = 0تعداد سندهایی که یک‌جا به مدل جاسازی راه دور فرستاده می‌شوند.
db-typesense-ImportDocuments.salam
/*
 * Salam Programming Language (2024-2026)
 *
 *   +-------------------+
 *   |     S A L A M     |
 *   +-------------------+
 *
 * Designed by Seyyed Ali Mohammadiyeh and the Salam Team
 * Born from a decade of language design experience (since 2018)
 *
 * Repository: https://github.com/SalamLang/Salam
 *
 */


واردسازی دیتابیس.تایپسنس

ساختار کتاب:
    همگانی id: رشته = ""
    همگانی title: رشته = ""
    همگانی year: صحیح = 0
پایان

تابع ریشه:
    ک := تایپسنس.جدید("http://localhost:8108"، "admin-key")
    ناپایا خ := تایپسنس.خطا {}

    سرچاپ تایپسنس.ساخت سند(ک، "books"، `{"id": "1", "title": "تل‌ماسه", "year": 1965}`، خ)
    سرچاپ تایپسنس.درج سند(ک، "books"، `{"id": "1", "title": "تل‌ماسه", "year": 1965}`، خ)
    سرچاپ تایپسنس.جایگذاری سند(ک، "books"، `{"id": "2", "title": "اِما"}`، خ)
    سرچاپ تایپسنس.به‌روزرسانی سند(ک، "books"، "2"، `{"year": 1815}`، خ)
    سرچاپ تایپسنس.به‌روزرسانی سند با گزینه(ک، "books"، "2"، `{"year": "1815"}`، تایپسنس.ناپاک تبدیل با رد، خ)
    سرچاپ تایپسنس.نمایه سازی سند(ک، "books"، `{"id": "3", "title": "اولیس", "year": "1922"}`، تایپسنس.گزینه های نوشتن { کنش = تایپسنس.کنش درج، مقدارهای ناپاک = تایپسنس.ناپاک تبدیل با کنار }، خ)
    سرچاپ تایپسنس.دریافت سند(ک، "books"، "1"، خ)
    سرچاپ تایپسنس.سند وجود دارد(ک، "books"، "42"، خ)

    ناپایا b := کتاب {}
    اگر تایپسنس.دریافت سند به نوع(ک، "books"، "1"، b، خ):
        سرچاپ b.title، b.year
    پایان
    سرچاپ تایپسنس.ساخت سند از نوع(ک، "books"، کتاب { id = "4"، title = "دلبند"، year = 1987 }، خ)
    سرچاپ تایپسنس.درج سند از نوع(ک، "books"، کتاب { id = "4"، title = "دلبند"، year = 1987 }، خ)

    ناپایا books := وکتور {} برگردان وکتور<کتاب>
    books.بیفزا(کتاب { id = "5"، title = "هملت"، year = 1603 })
    books.بیفزا(کتاب { id = "6"، title = "میدل‌مارچ"، year = 1871 })
    r := تایپسنس.درون ریزی از نوع(ک، "books"، books، تایپسنس.گزینه های نوشتن { کنش = تایپسنس.کنش درج، اندازه دسته = 100، بازگرداندن شناسه = درست }، خ)
    سرچاپ r.موفق، r.ناموفق، r.شناسه‌ها.طول()، r.سندها.طول()، r.سطرها.طول()
    هر e در r.خطاها:
        سرچاپ e.سطر، e.شناسه، e.کد، e.خطا، e.سند
    پایان

    ناپایا docs := وکتور {} برگردان وکتور<رشته>
    docs.بیفزا(`{"id": "7", "title": "ترغیب", "year": 1817}`)
    docs.بیفزا(`{"id": "8", "title": "والدن", "year": "1854"}`)
    r2 := تایپسنس.درون ریزی سندها(ک، "books"، docs، تایپسنس.گزینه های نوشتن { کنش = تایپسنس.کنش ساخت، مقدارهای ناپاک = تایپسنس.ناپاک رد، بازگرداندن سند = درست }، خ)
    سرچاپ r2.موفق، r2.ناموفق
    r3 := تایپسنس.درون ریزی جیسون خطی(ک، "books"، "{\"id\": \"9\", \"title\": \"اِما\"}\n"، تایپسنس.گزینه های نوشتن { کنش = تایپسنس.کنش به‌روزرسانی، اندازه دسته جاسازی دور = 50 }، خ)
    سرچاپ r3.موفق، تایپسنس.کنش جایگذاری، تایپسنس.ناپاک کنار گذاشتن

    سرچاپ تایپسنس.به‌روزرسانی با پالایه(ک، "books"، "year:<1900"، `{"classic": true}`، خ)
    سرچاپ تایپسنس.حذف با پالایه(ک، "books"، "year:<1700"، 500، خ)
    سرچاپ تایپسنس.حذف سند(ک، "books"، "9"، خ)

    lines := تایپسنس.برون بری سندها(ک، "books"، تایپسنس.گزینه های برون بری { فیلتر = "year:>1800"، فیلدهای شامل = "id,title,year"، فیلدهای مستثنی = "" }، خ)
    ناپایا back := وکتور {} برگردان وکتور<کتاب>
    اگر تایپسنس.رمزگشایی سندها(lines، back، خ):
        سرچاپ back.طول()
    پایان
    ناپایا one := کتاب {}
    سرچاپ تایپسنس.رمزگشایی سند(`{"id": "1", "title": "تل‌ماسه", "year": 1965}`، one، خ)، one.title
    سرچاپ تایپسنس.برون بری جیسون خطی(ک، "books"، تایپسنس.گزینه های برون بری {}، خ).طول()
پایان

خطای درون ریزی ImportError

ساختار خطای درون ریزی
یک سطر از درون‌ریزی که شکست خورد.
نامانگلیسیگونهتوضیح
سطرlineصحیح = 0جایگاه آن در درون‌ریزی، از ۰.
شناسهidرشته = ""شناسه‌ی سند، وقتی return_id روشن بود.
کدcodeصحیح = 0وضعیت HTTP این سطر، مثل ۴۰۰ یا ۴۰۹.
خطاerrorرشته = ""دلیل شکست.
سندdocumentرشته = ""متن سند، وقتی return_doc روشن بود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

نتیجه درون ریزی ImportResult

ساختار نتیجه درون ریزی
نتیجه‌ی یک درون‌ریزی. تایپ‌سنس حتی وقتی بعضی سطرها شکست بخورند ۲۰۰ پاسخ می‌دهد، پس failed را بررسی کنید.
نامانگلیسیگونهتوضیح
موفقsuccessصحیح = 0تعداد سندهایی که نوشته شدند.
ناموفقfailedصحیح = 0تعداد سندهایی که نوشته نشدند.
شناسه‌هاidsوکتور<رشته>شناسه‌ی سندهای نوشته‌شده، با return_id.
سندهاdocumentsوکتور<رشته>سندهای نوشته‌شده، با return_doc.
خطاهاerrorsوکتور<خطای درون ریزی>سطرهایی که شکست خوردند.
سطرهاlinesوکتور<رشته>سطر خام نتیجه‌ی هر سند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

گزینه های برون بری ExportOptions

ساختار گزینه های برون بری
کدام سندها و کدام فیلدها برون‌بری شوند.
نامانگلیسیگونهتوضیح
فیلترfilter_byرشته = ""یک فیلتر، مثل year:>2000؛ خالی یعنی همه.
فیلدهای شاملinclude_fieldsرشته = ""فقط این فیلدها را برون‌بری کن، جداشده با ویرگول.
فیلدهای مستثنیexclude_fieldsرشته = ""این فیلدها را کنار بگذار، جداشده با ویرگول.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

پایاها و متغیرها

بیشینه پرسمان دریافت MAX_GET_QUERY

پایا بیشینه پرسمان دریافت: صحیح۳۲ = 4000
رشته‌ی پرسمان جستجویی که از این تعداد بایت بلندتر باشد از راه /multi_search فرستاده می‌شود، چون سرورها طول نشانی را محدود می‌کنند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

پایا قاعده پرسمان های پرطرفدار: رشته = "popular_queries"
قاعده‌ای که پرجستجوترین پرسمان‌ها را در یک مجموعه گرد می‌آورد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

قاعده پرسمان های بی نتیجه RULE_NOHITS_QUERIES

پایا قاعده پرسمان های بی نتیجه: رشته = "nohits_queries"
قاعده‌ای که پرسمان‌های بی‌نتیجه را گرد می‌آورد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

قاعده شمارنده RULE_COUNTER

پایا قاعده شمارنده: رشته = "counter"
قاعده‌ای که رویدادها را در یک فیلد می‌شمارد، مثلا کلیک‌ها را در امتیاز محبوبیت.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

قاعده گزارش RULE_LOG

پایا قاعده گزارش: رشته = "log"
قاعده‌ای که همه‌ی رویدادها را نگه می‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

پایا رویداد جستجو: رشته = "search"
رویداد جستجو.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

رویداد کلیک EVENT_CLICK

پایا رویداد کلیک: رشته = "click"
کلیک روی یک نتیجه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

رویداد تبدیل EVENT_CONVERSION

پایا رویداد تبدیل: رشته = "conversion"
خرید یا هدفی دیگر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

رویداد بازدید EVENT_VISIT

پایا رویداد بازدید: رشته = "visit"
بازدید از صفحه‌ی یک سند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

رویداد سفارشی EVENT_CUSTOM

پایا رویداد سفارشی: رشته = "custom"
رویدادی از خودتان.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

نوع متن TYPE_STRING

پایا نوع متن: رشته = "string"
یک فیلد متنی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع آرایه متن TYPE_STRING_ARRAY

پایا نوع آرایه متن: رشته = "string[]"
فهرستی از متن‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع متن ستاره TYPE_STRING_ANY

پایا نوع متن ستاره: رشته = "string*"
متن یا فهرستی از متن‌ها، هر کدام که سند داشته باشد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع عدد۳۲ TYPE_INT32

پایا نوع عدد۳۲: رشته = "int32"
یک عدد صحیح ۳۲ بیتی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع آرایه عدد۳۲ TYPE_INT32_ARRAY

پایا نوع آرایه عدد۳۲: رشته = "int32[]"
فهرستی از عددهای صحیح ۳۲ بیتی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع عدد۶۴ TYPE_INT64

پایا نوع عدد۶۴: رشته = "int64"
یک عدد صحیح ۶۴ بیتی، مثل زمان یونیکس به میلی‌ثانیه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع آرایه عدد۶۴ TYPE_INT64_ARRAY

پایا نوع آرایه عدد۶۴: رشته = "int64[]"
فهرستی از عددهای صحیح ۶۴ بیتی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع اعشاری TYPE_FLOAT

پایا نوع اعشاری: رشته = "اعشار"
یک عدد اعشاری.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع آرایه اعشاری TYPE_FLOAT_ARRAY

پایا نوع آرایه اعشاری: رشته = "اعشار[]"
فهرستی از عددهای اعشاری؛ با num_dim یک بردار است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع بولی TYPE_BOOL

پایا نوع بولی: رشته = "منطقی"
درست یا نادرست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع آرایه بولی TYPE_BOOL_ARRAY

پایا نوع آرایه بولی: رشته = "منطقی[]"
فهرستی از مقدارهای درست یا نادرست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع نقطه جغرافیایی TYPE_GEOPOINT

پایا نوع نقطه جغرافیایی: رشته = "geopoint"
یک عرض و طول جغرافیایی که به شکل [lat, lng] نوشته می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع آرایه نقطه جغرافیایی TYPE_GEOPOINT_ARRAY

پایا نوع آرایه نقطه جغرافیایی: رشته = "geopoint[]"
فهرستی از نقطه‌های جغرافیایی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع چندضلعی جغرافیایی TYPE_GEOPOLYGON

پایا نوع چندضلعی جغرافیایی: رشته = "geopolygon"
یک ناحیه روی نقشه، برای جستجوی ناحیه‌هایی که یک نقطه را در بر دارند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع شیء TYPE_OBJECT

پایا نوع شیء: رشته = "object"
یک شیء تودرتو؛ به enable_nested_fields نیاز دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع آرایه شیء TYPE_OBJECT_ARRAY

پایا نوع آرایه شیء: رشته = "object[]"
فهرستی از شیءهای تودرتو.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع تصویر TYPE_IMAGE

پایا نوع تصویر: رشته = "image"
یک تصویر، برای جستجوی تصویری با مدل CLIP.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

نوع خودکار TYPE_AUTO

پایا نوع خودکار: رشته = "auto"
بگذار تایپ‌سنس نوع را از نخستین سند حدس بزند؛ اغلب با الگوی نامی مثل .* به کار می‌رود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

تطابق دقیق MATCH_EXACT

پایا تطابق دقیق: رشته = "exact"
قاعده‌ی گزینشی که وقتی پرسمان دقیقا همان متن باشد اعمال می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

تطابق شامل MATCH_CONTAINS

پایا تطابق شامل: رشته = "contains"
قاعده‌ی گزینشی که وقتی پرسمان آن متن را در خود داشته باشد اعمال می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

کنش کلید همه KEY_ACTION_ALL

پایا کنش کلید همه: رشته = "*"
همه‌ی کنش‌ها، برای کلید مدیر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateKey.salam

پایا کنش کلید جستجو: رشته = "documents:search"
فقط جستجو، برای کلیدی که مرورگر می‌تواند نگه دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateKey.salam

نسخه کلاینت VERSION

پایا نسخه کلاینت: رشته = "1.0.0"
نسخه‌ی این کارخواه که در سرآیند User-Agent فرستاده می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

نوع اچ تی تی پی KIND_HTTP

پایا نوع اچ تی تی پی: رشته = "http"
مقدار خطا.kind وقتی سرور با وضعیت خطا پاسخ داده است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

نوع شبکه KIND_NETWORK

پایا نوع شبکه: رشته = "network"
مقدار خطا.kind وقتی به هیچ گرهی نمی‌شد رسید یا زمان درخواست تمام شد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

نوع نامعتبر KIND_INVALID

پایا نوع نامعتبر: رشته = "invalid"
مقدار خطا.kind وقتی خود کارخواه قابل استفاده نیست، مثلا هیچ گرهی ندارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

نوع رمزگشایی KIND_DECODE

پایا نوع رمزگشایی: رشته = "decode"
مقدار خطا.kind وقتی سندی را نمی‌شد در ساختار شما خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

کنش ساخت ACTION_CREATE

پایا کنش ساخت: رشته = "create"
یک سند تازه نمایه کن؛ اگر شناسه وجود داشت شکست بخور.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

کنش درج ACTION_UPSERT

پایا کنش درج: رشته = "upsert"
سند را بساز، یا سند هم‌شناسه را جایگزین کن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

کنش به‌روزرسانی ACTION_UPDATE

پایا کنش به‌روزرسانی: رشته = "update"
فیلدهای داده‌شده‌ی یک سند موجود را تغییر بده؛ اگر وجود نداشت شکست بخور.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

کنش جایگذاری ACTION_EMPLACE

پایا کنش جایگذاری: رشته = "emplace"
سند را بساز، یا اگر وجود داشت فیلدهای داده‌شده را به‌روزرسانی کن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

ناپاک تبدیل با رد DIRTY_COERCE_OR_REJECT

پایا ناپاک تبدیل با رد: رشته = "coerce_or_reject"
مقدار با نوع نادرست را به نوع فیلد تبدیل کن و اگر نشد سند را رد کن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

ناپاک تبدیل با کنار DIRTY_COERCE_OR_DROP

پایا ناپاک تبدیل با کنار: رشته = "coerce_or_drop"
مقدار با نوع نادرست را به نوع فیلد تبدیل کن و اگر نشد آن فیلد را کنار بگذار.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

ناپاک کنار گذاشتن DIRTY_DROP

پایا ناپاک کنار گذاشتن: رشته = "drop"
فیلدهایی را که مقدارشان نوع نادرست دارد کنار بگذار.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

ناپاک رد DIRTY_REJECT

پایا ناپاک رد: رشته = "reject"
سندهایی را که مقداری با نوع نادرست دارند رد کن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

تابع‌ها

جستجوی جدید NewSearch

تابع جستجوی جدید(q: رشته، query_by: رشته): پارامترهای جستجو
پارامترهای جستجو با یک پرسمان و فیلدهایی که جستجو می‌شوند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

تنظیم پارامتر Set

تابع تنظیم پارامتر(p &: پارامترهای جستجو، key: رشته، value: رشته)
هر پارامتری را با نامش تنظیم می‌کند و مقدار قبلی را جایگزین می‌کند؛ برای پارامترهایی که فیلد ندارند، مثل prioritize_exact_match، یا enable_curations با مقدار false برای خاموش کردن قاعده‌های گزینش در یک جستجو (در تایپ‌سنس ۲۹ enable_overrides).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

متن پرسمان جستجو SearchQuery

تابع متن پرسمان جستجو(p: پارامترهای جستجو): رشته
پارامترها به صورت رشته‌ی پرسمان نشانی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

جیسون پارامترهای جستجو SearchParamsJSON

تابع جیسون پارامترهای جستجو(p: پارامترهای جستجو): رشته
پارامترها به صورت یک شیء JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

تجزیه نتیجه جستجو ParseSearchResult

تابع تجزیه نتیجه جستجو(body: رشته): نتیجه جستجو
پاسخ جستجویی را که از راه دیگری گرفته‌اید می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

جستجوی خام SearchRaw

تابع جستجوی خام(c: کلاینت، collection: رشته، p: پارامترهای جستجو، err &: خطا): رشته
در یک مجموعه جستجو می‌کند و پاسخ را به شکل JSON برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

تابع جستجو(c: کلاینت، collection: رشته، p: پارامترهای جستجو، err &: خطا): نتیجه جستجو
در یک مجموعه جستجو می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

جستجوی چندگانه خام MultiSearchRaw

تابع جستجوی چندگانه خام(c: کلاینت، searches: وکتور<درخواست جستجو>، common: پارامترهای جستجو، err &: خطا): رشته
چند جستجو را در یک درخواست انجام می‌دهد و پاسخ را به شکل JSON برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

جستجوی چندگانه MultiSearch

تابع جستجوی چندگانه(c: کلاینت، searches: وکتور<درخواست جستجو>، common: پارامترهای جستجو، err &: خطا): وکتور<نتیجه جستجو>
چند جستجو را در یک درخواست انجام می‌دهد؛ پارامترهای مشترک روی همه اعمال می‌شوند و هر نتیجه code و error خودش را دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

جستجوی اجتماع UnionSearch

تابع جستجوی اجتماع(c: کلاینت، searches: وکتور<درخواست جستجو>، common: پارامترهای جستجو، err &: خطا): نتیجه جستجو
چند جستجو انجام می‌دهد و یافته‌هایشان را در یک فهرست رتبه‌بندی‌شده ادغام می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

یافته ها به نوع HitsAs

تابع یافته ها به نوع<T>(r: نتیجه جستجو، out &: وکتور<T>، err &: خطا): منطقی
سند یافته‌ها را در فهرستی از ساختارهای شما می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

برجسته Highlight

تابع برجسته(h: یافته، field: رشته): رشته
تکه‌ی برجسته‌ی یک فیلد در یک یافته؛ تکه‌های یک فیلد فهرستی با فاصله به هم پیوسته می‌شوند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

آزادسازی نتیجه FreeResult

تابع آزادسازی نتیجه(r &: نتیجه جستجو)
فهرست‌هایی را که نتیجه‌ی جستجو نگه داشته آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Search.salam

جیسون قاعده تحلیل AnalyticsRuleJSON

تابع جیسون قاعده تحلیل(r: قاعده تحلیل): رشته
JSON یک قاعده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

ساخت قاعده تحلیل از جیسون CreateAnalyticsRuleJSON

تابع ساخت قاعده تحلیل از جیسون(c: کلاینت، rule: رشته، err &: خطا): رشته
قاعده‌ای را از JSON، به شکلی که سرور شما انتظار دارد، می‌سازد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

درج قاعده تحلیل از جیسون UpsertAnalyticsRuleJSON

تابع درج قاعده تحلیل از جیسون(c: کلاینت، name: رشته، rule: رشته، err &: خطا): رشته
قاعده‌ای را با نامش از JSON می‌سازد یا جایگزین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

ساخت قاعده تحلیل CreateAnalyticsRule

تابع ساخت قاعده تحلیل(c: کلاینت، r: قاعده تحلیل، err &: خطا): قاعده تحلیل
یک قاعده می‌سازد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

درج قاعده تحلیل UpsertAnalyticsRule

تابع درج قاعده تحلیل(c: کلاینت، r: قاعده تحلیل، err &: خطا): قاعده تحلیل
یک قاعده می‌سازد یا جایگزین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

دریافت قاعده تحلیل GetAnalyticsRule

تابع دریافت قاعده تحلیل(c: کلاینت، name: رشته، err &: خطا): قاعده تحلیل
یک قاعده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

فهرست قاعده های تحلیل ListAnalyticsRules

تابع فهرست قاعده های تحلیل(c: کلاینت، rule_tag: رشته، err &: خطا): وکتور<قاعده تحلیل>
همه‌ی قاعده‌ها، یا فقط آن‌هایی که یک برچسب دارند؛ پاسخ تایپ‌سنس ۲۹ و ۳۰ هر دو را می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

حذف قاعده تحلیل DeleteAnalyticsRule

تابع حذف قاعده تحلیل(c: کلاینت، name: رشته، err &: خطا): رشته
یک قاعده را حذف می‌کند و نامش را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

ارسال رویداد از جیسون SendEventJSON

تابع ارسال رویداد از جیسون(c: کلاینت، event: رشته، err &: خطا): منطقی
رویدادی را که به شکل JSON نوشته شده می‌فرستد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

ارسال رویداد SendEvent

تابع ارسال رویداد(c: کلاینت، name: رشته، event_type: رشته، data: رشته، err &: خطا): منطقی
رویدادی را با داده‌هایش به شکل JSON، مثل {"doc_id":"1","user_id":"u1"}، برای قاعده‌ای با این نام می‌فرستد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

دریافت رویدادها GetEvents

تابع دریافت رویدادها(c: کلاینت، user_id: رشته، name: رشته، n: صحیح، err &: خطا): وکتور<رشته>
آخرین رویدادهای یک کاربر برای یک قاعده، هر کدام یک شیء JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

تخلیه تحلیل FlushAnalytics

تابع تخلیه تحلیل(c: کلاینت، err &: خطا): منطقی
تحلیل‌های گردآوری‌شده را همین حالا در مجموعه‌هایشان می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

وضعیت تحلیل AnalyticsStatus

تابع وضعیت تحلیل(c: کلاینت، err &: خطا): رشته
شمار رویدادهایی که در انتظار نوشته شدن‌اند، به شکل JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

جیسون مدل گفتگو ConversationModelJSON

تابع جیسون مدل گفتگو(m: مدل گفتگو): رشته
JSON یک مدل گفتگو.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

ساخت مدل گفتگو CreateConversationModel

تابع ساخت مدل گفتگو(c: کلاینت، m: مدل گفتگو، err &: خطا): رشته
یک مدل گفتگو می‌سازد؛ سرور کلید را نزد ارائه‌دهنده بررسی می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

دریافت مدل گفتگو GetConversationModel

تابع دریافت مدل گفتگو(c: کلاینت، id: رشته، err &: خطا): رشته
یک مدل گفتگو، به شکل JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

فهرست مدل های گفتگو ListConversationModels

تابع فهرست مدل های گفتگو(c: کلاینت، err &: خطا): وکتور<رشته>
همه‌ی مدل‌های گفتگو، هر کدام یک شیء JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

به‌روزرسانی مدل گفتگو UpdateConversationModel

تابع به‌روزرسانی مدل گفتگو(c: کلاینت، id: رشته، m: مدل گفتگو، err &: خطا): رشته
یک مدل گفتگو را تغییر می‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

حذف مدل گفتگو DeleteConversationModel

تابع حذف مدل گفتگو(c: کلاینت، id: رشته، err &: خطا): رشته
یک مدل گفتگو را حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

ساخت مدل جستجوی زبانی CreateNLSearchModel

تابع ساخت مدل جستجوی زبانی(c: کلاینت، model: رشته، err &: خطا): رشته
از JSON یک مدل جستجوی زبان طبیعی می‌سازد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

دریافت مدل جستجوی زبانی GetNLSearchModel

تابع دریافت مدل جستجوی زبانی(c: کلاینت، id: رشته، err &: خطا): رشته
یک مدل جستجوی زبانی، به شکل JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

فهرست مدل های جستجوی زبانی ListNLSearchModels

تابع فهرست مدل های جستجوی زبانی(c: کلاینت، err &: خطا): وکتور<رشته>
همه‌ی مدل‌های جستجوی زبانی، هر کدام یک شیء JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

به‌روزرسانی مدل جستجوی زبانی UpdateNLSearchModel

تابع به‌روزرسانی مدل جستجوی زبانی(c: کلاینت، id: رشته، model: رشته، err &: خطا): رشته
یک مدل جستجوی زبانی را تغییر می‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

حذف مدل جستجوی زبانی DeleteNLSearchModel

تابع حذف مدل جستجوی زبانی(c: کلاینت، id: رشته، err &: خطا): رشته
یک مدل جستجوی زبانی را حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateAnalyticsRule.salam

فیلد جدید NewField

تابع فیلد جدید(name: رشته، kind: رشته): فیلد
فیلدی با یک نام و یک نوع.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

فیلد دسته بندی FacetField

تابع فیلد دسته بندی(name: رشته، kind: رشته): فیلد
فیلدی که دسته‌بندی در آن روشن است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

فیلد بردار VectorField

تابع فیلد بردار(name: رشته، num_dim: صحیح): فیلد
یک فیلد برداری float[] با اندازه‌ی داده‌شده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

فیلد جاسازی EmbeddingField

تابع فیلد جاسازی(name: رشته، from: وکتور<رشته>، model_name: رشته): فیلد
فیلد برداری‌ای که تایپ‌سنس با اجرای یک مدل روی فیلدهای دیگر پرش می‌کند، مثل ts/all-MiniLM-L12-v2.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

جیسون فیلد FieldJSON

تابع جیسون فیلد(f: فیلد): رشته
JSON یک فیلد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

جیسون طرح SchemaJSON

تابع جیسون طرح(s: طرح): رشته
JSON یک طرح.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

ساخت مجموعه CreateCollection

تابع ساخت مجموعه(c: کلاینت، schema: طرح، err &: خطا): مجموعه
از یک طرح، مجموعه‌ای می‌سازد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

ساخت مجموعه از جیسون CreateCollectionJSON

تابع ساخت مجموعه از جیسون(c: کلاینت، schema: رشته، err &: خطا): مجموعه
از طرحی که به شکل JSON نوشته شده، مجموعه‌ای می‌سازد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

رونوشت مجموعه CloneCollection

تابع رونوشت مجموعه(c: کلاینت، source: رشته، name: رشته، err &: خطا): مجموعه
مجموعه‌ای تازه و خالی با طرح یک مجموعه‌ی دیگر می‌سازد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

دریافت مجموعه GetCollection

تابع دریافت مجموعه(c: کلاینت، name: رشته، err &: خطا): مجموعه
یک مجموعه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

مجموعه وجود دارد CollectionExists

تابع مجموعه وجود دارد(c: کلاینت، name: رشته، err &: خطا): منطقی
آیا مجموعه‌ای وجود دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

فهرست مجموعه ها ListCollections

تابع فهرست مجموعه ها(c: کلاینت، err &: خطا): وکتور<مجموعه>
همه‌ی مجموعه‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

صفحه مجموعه ها ListCollectionsPage

تابع صفحه مجموعه ها(c: کلاینت، offset: صحیح، limit: صحیح، exclude_fields: وکتور<رشته>، err &: خطا): وکتور<مجموعه>
یک صفحه از مجموعه‌ها؛ ۰ یعنی بدون جابجایی یا بدون حد، و exclude_fields مثل fields پاسخ را کوچک‌تر می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

به‌روزرسانی مجموعه UpdateCollection

تابع به‌روزرسانی مجموعه(c: کلاینت، name: رشته، changes: رشته، err &: خطا): رشته
مجموعه‌ای را با یک بدنه‌ی JSON تغییر می‌دهد: فیلدهایی برای افزودن یا حذف، فراداده، دسته‌های مترادف و گزینش.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

افزودن فیلدها AddFields

تابع افزودن فیلدها(c: کلاینت، name: رشته، fields: وکتور<فیلد>، err &: خطا): رشته
فیلدهایی به یک مجموعه می‌افزاید؛ سندهای موجود دوباره نمایه می‌شوند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

حذف فیلدها DropFields

تابع حذف فیلدها(c: کلاینت، name: رشته، fields: وکتور<رشته>، err &: خطا): رشته
فیلدهایی را با نامشان از یک مجموعه حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

تنظیم فراداده مجموعه SetCollectionMetadata

تابع تنظیم فراداده مجموعه(c: کلاینت، name: رشته، metadata: رشته، err &: خطا): رشته
فراداده‌ی یک مجموعه را جایگزین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

حذف مجموعه DeleteCollection

تابع حذف مجموعه(c: کلاینت، name: رشته، err &: خطا): مجموعه
یک مجموعه و همه‌ی سندهایش را حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

خالی کردن مجموعه TruncateCollection

تابع خالی کردن مجموعه(c: کلاینت، name: رشته، err &: خطا): صحیح۶۴
همه‌ی سندها را حذف می‌کند ولی مجموعه را نگه می‌دارد، و تعداد حذف‌شده‌ها را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

درج نام مستعار UpsertAlias

تابع درج نام مستعار(c: کلاینت، name: رشته، collection: رشته، err &: خطا): نام مستعار
یک نام مستعار را به مجموعه‌ای اشاره می‌دهد؛ جابجا کردن آن راه رفتن به مجموعه‌ی بازسازی‌شده بدون هیچ وقفه‌ای است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

دریافت نام مستعار GetAlias

تابع دریافت نام مستعار(c: کلاینت، name: رشته، err &: خطا): نام مستعار
یک نام مستعار.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

فهرست نام های مستعار ListAliases

تابع فهرست نام های مستعار(c: کلاینت، err &: خطا): وکتور<نام مستعار>
همه‌ی نام‌های مستعار.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

حذف نام مستعار DeleteAlias

تابع حذف نام مستعار(c: کلاینت، name: رشته، err &: خطا): نام مستعار
یک نام مستعار را حذف می‌کند، نه خود مجموعه را.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateCollection.salam

جیسون مترادف SynonymJSON

تابع جیسون مترادف(s: مترادف): رشته
بدنه‌ی JSON یک مترادف.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

جیسون گزینش CurationJSON

تابع جیسون گزینش(r: قاعده گزینش): رشته
بدنه‌ی JSON یک قاعده‌ی گزینش.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

درج دسته مترادف UpsertSynonymSet

تابع درج دسته مترادف(c: کلاینت، name: رشته، items: وکتور<مترادف>، err &: خطا): دسته مترادف
یک دسته‌ی مترادف می‌سازد یا جایگزین می‌کند (تایپ‌سنس ۳۰).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

دریافت دسته مترادف GetSynonymSet

تابع دریافت دسته مترادف(c: کلاینت، name: رشته، err &: خطا): دسته مترادف
یک دسته‌ی مترادف.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

فهرست دسته های مترادف ListSynonymSets

تابع فهرست دسته های مترادف(c: کلاینت، err &: خطا): وکتور<دسته مترادف>
همه‌ی دسته‌های مترادف.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

حذف دسته مترادف DeleteSynonymSet

تابع حذف دسته مترادف(c: کلاینت، name: رشته، err &: خطا): رشته
یک دسته‌ی مترادف را حذف می‌کند و نامش را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

درج مترادف دسته UpsertSynonymItem

تابع درج مترادف دسته(c: کلاینت، set: رشته، item: مترادف، err &: خطا): مترادف
یک مترادف را در دسته‌ای که وجود دارد می‌افزاید یا جایگزین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

دریافت مترادف دسته GetSynonymItem

تابع دریافت مترادف دسته(c: کلاینت، set: رشته، id: رشته، err &: خطا): مترادف
یک مترادف از یک دسته.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

فهرست مترادف های دسته ListSynonymItems

تابع فهرست مترادف های دسته(c: کلاینت، set: رشته، err &: خطا): وکتور<مترادف>
مترادف‌های یک دسته.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

حذف مترادف دسته DeleteSynonymItem

تابع حذف مترادف دسته(c: کلاینت، set: رشته، id: رشته، err &: خطا): رشته
یک مترادف از یک دسته را حذف می‌کند و شناسه‌اش را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

درج مترادف UpsertSynonym

تابع درج مترادف(c: کلاینت، collection: رشته، s: مترادف، err &: خطا): مترادف
مترادفی از یک مجموعه را می‌افزاید یا جایگزین می‌کند (تایپ‌سنس ۲۹ و قدیمی‌تر).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

دریافت مترادف GetSynonym

تابع دریافت مترادف(c: کلاینت، collection: رشته، id: رشته، err &: خطا): مترادف
یک مترادف از یک مجموعه (تایپ‌سنس ۲۹ و قدیمی‌تر).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

فهرست مترادف ها ListSynonyms

تابع فهرست مترادف ها(c: کلاینت، collection: رشته، err &: خطا): وکتور<مترادف>
مترادف‌های یک مجموعه (تایپ‌سنس ۲۹ و قدیمی‌تر).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

حذف مترادف DeleteSynonym

تابع حذف مترادف(c: کلاینت، collection: رشته، id: رشته، err &: خطا): رشته
مترادفی از یک مجموعه را حذف می‌کند (تایپ‌سنس ۲۹ و قدیمی‌تر).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

درج دسته گزینش UpsertCurationSet

تابع درج دسته گزینش(c: کلاینت، name: رشته، items: وکتور<قاعده گزینش>، err &: خطا): دسته گزینش
یک دسته‌ی گزینش می‌سازد یا جایگزین می‌کند (تایپ‌سنس ۳۰).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

دریافت دسته گزینش GetCurationSet

تابع دریافت دسته گزینش(c: کلاینت، name: رشته، err &: خطا): دسته گزینش
یک دسته‌ی گزینش.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

فهرست دسته های گزینش ListCurationSets

تابع فهرست دسته های گزینش(c: کلاینت، err &: خطا): وکتور<دسته گزینش>
همه‌ی دسته‌های گزینش.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

حذف دسته گزینش DeleteCurationSet

تابع حذف دسته گزینش(c: کلاینت، name: رشته، err &: خطا): رشته
یک دسته‌ی گزینش را حذف می‌کند و نامش را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

درج قاعده دسته گزینش UpsertCurationItem

تابع درج قاعده دسته گزینش(c: کلاینت، set: رشته، r: قاعده گزینش، err &: خطا): قاعده گزینش
یک قاعده را در دسته‌ی گزینشی که وجود دارد می‌افزاید یا جایگزین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

دریافت قاعده دسته گزینش GetCurationItem

تابع دریافت قاعده دسته گزینش(c: کلاینت، set: رشته، id: رشته، err &: خطا): قاعده گزینش
یک قاعده از یک دسته‌ی گزینش.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

فهرست قاعده های دسته گزینش ListCurationItems

تابع فهرست قاعده های دسته گزینش(c: کلاینت، set: رشته، err &: خطا): وکتور<قاعده گزینش>
قاعده‌های یک دسته‌ی گزینش.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

حذف قاعده دسته گزینش DeleteCurationItem

تابع حذف قاعده دسته گزینش(c: کلاینت، set: رشته، id: رشته، err &: خطا): رشته
یک قاعده از یک دسته‌ی گزینش را حذف می‌کند و شناسه‌اش را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

درج بازنویسی UpsertOverride

تابع درج بازنویسی(c: کلاینت، collection: رشته، r: قاعده گزینش، err &: خطا): قاعده گزینش
بازنویسی‌ای از یک مجموعه را می‌افزاید یا جایگزین می‌کند (تایپ‌سنس ۲۹ و قدیمی‌تر).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

دریافت بازنویسی GetOverride

تابع دریافت بازنویسی(c: کلاینت، collection: رشته، id: رشته، err &: خطا): قاعده گزینش
یک بازنویسی از یک مجموعه (تایپ‌سنس ۲۹ و قدیمی‌تر).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

فهرست بازنویسی ها ListOverrides

تابع فهرست بازنویسی ها(c: کلاینت، collection: رشته، err &: خطا): وکتور<قاعده گزینش>
بازنویسی‌های یک مجموعه (تایپ‌سنس ۲۹ و قدیمی‌تر).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

حذف بازنویسی DeleteOverride

تابع حذف بازنویسی(c: کلاینت، collection: رشته، id: رشته، err &: خطا): رشته
بازنویسی‌ای از یک مجموعه را حذف می‌کند (تایپ‌سنس ۲۹ و قدیمی‌تر).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

درج پیش تنظیم UpsertPreset

تابع درج پیش تنظیم(c: کلاینت، name: رشته، value: رشته، err &: خطا): پیش تنظیم
یک پیش‌تنظیم می‌سازد یا جایگزین می‌کند؛ مقدارش را به شکل JSON بدهید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

درج پیش تنظیم جستجو UpsertSearchPreset

تابع درج پیش تنظیم جستجو(c: کلاینت، name: رشته، p: پارامترهای جستجو، err &: خطا): پیش تنظیم
یک پارامترهای جستجو را به عنوان پیش‌تنظیم ذخیره می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

دریافت پیش تنظیم GetPreset

تابع دریافت پیش تنظیم(c: کلاینت، name: رشته، err &: خطا): پیش تنظیم
یک پیش‌تنظیم.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

فهرست پیش تنظیم ها ListPresets

تابع فهرست پیش تنظیم ها(c: کلاینت، err &: خطا): وکتور<پیش تنظیم>
همه‌ی پیش‌تنظیم‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

حذف پیش تنظیم DeletePreset

تابع حذف پیش تنظیم(c: کلاینت، name: رشته، err &: خطا): رشته
یک پیش‌تنظیم را حذف می‌کند و نامش را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

درج کلمات توقف UpsertStopwords

تابع درج کلمات توقف(c: کلاینت، id: رشته، words: وکتور<رشته>، locale: رشته، err &: خطا): کلمات توقف
یک دسته‌ی کلمات توقف می‌سازد یا جایگزین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

دریافت کلمات توقف GetStopwords

تابع دریافت کلمات توقف(c: کلاینت، id: رشته، err &: خطا): کلمات توقف
یک دسته‌ی کلمات توقف.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

فهرست کلمات توقف ListStopwords

تابع فهرست کلمات توقف(c: کلاینت، err &: خطا): وکتور<کلمات توقف>
همه‌ی دسته‌های کلمات توقف.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

حذف کلمات توقف DeleteStopwords

تابع حذف کلمات توقف(c: کلاینت، id: رشته، err &: خطا): رشته
یک دسته‌ی کلمات توقف را حذف می‌کند و شناسه‌اش را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

درون ریزی ریشه یابی جیسون خطی ImportStemmingJSONL

تابع درون ریزی ریشه یابی جیسون خطی(c: کلاینت، id: رشته، jsonl: رشته، err &: خطا): منطقی
یک واژه‌نامه‌ی ریشه‌یابی را درون‌ریزی می‌کند که در هر سطرش یک شیء {"word","root"} نوشته شده است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

درون ریزی واژه نامه ریشه یابی ImportStemmingDictionary

تابع درون ریزی واژه نامه ریشه یابی(c: کلاینت، id: رشته، words: وکتور<ریشه کلمه>، err &: خطا): منطقی
یک واژه‌نامه‌ی ریشه‌یابی را از فهرستی از واژه‌ها درون‌ریزی می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

دریافت واژه نامه ریشه یابی GetStemmingDictionary

تابع دریافت واژه نامه ریشه یابی(c: کلاینت، id: رشته، err &: خطا): واژه نامه ریشه یابی
یک واژه‌نامه‌ی ریشه‌یابی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

فهرست واژه نامه های ریشه یابی ListStemmingDictionaries

تابع فهرست واژه نامه های ریشه یابی(c: کلاینت، err &: خطا): وکتور<رشته>
شناسه‌ی همه‌ی واژه‌نامه‌های ریشه‌یابی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

حذف واژه نامه ریشه یابی DeleteStemmingDictionary

تابع حذف واژه نامه ریشه یابی(c: کلاینت، id: رشته، err &: خطا): رشته
یک واژه‌نامه‌ی ریشه‌یابی را حذف می‌کند و شناسه‌اش را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-UpsertSynonymSet.salam

جیسون مشخصات کلید KeySpecJSON

تابع جیسون مشخصات کلید(spec: مشخصات کلید): رشته
بدنه‌ی JSON مشخصات یک کلید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateKey.salam

ساخت کلید CreateKey

تابع ساخت کلید(c: کلاینت، spec: مشخصات کلید، err &: خطا): کلید
یک کلید API می‌سازد؛ مقدار value برگشتی تنها جایی است که کلید کامل دیده می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateKey.salam

کلید فقط جستجو SearchOnlyKey

تابع کلید فقط جستجو(c: کلاینت، description: رشته، collections: وکتور<رشته>، err &: خطا): کلید
کلیدی می‌سازد که فقط می‌تواند در مجموعه‌های داده‌شده جستجو کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateKey.salam

دریافت کلید GetKey

تابع دریافت کلید(c: کلاینت، id: صحیح۶۴، err &: خطا): کلید
یک کلید، با شناسه‌اش؛ فقط پیشوندش برمی‌گردد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateKey.salam

فهرست کلیدها ListKeys

تابع فهرست کلیدها(c: کلاینت، err &: خطا): وکتور<کلید>
همه‌ی کلیدها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateKey.salam

حذف کلید DeleteKey

تابع حذف کلید(c: کلاینت، id: صحیح۶۴، err &: خطا): صحیح۶۴
یک کلید را حذف می‌کند و شناسه‌اش را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateKey.salam

ساخت کلید جستجوی محدود GenerateScopedSearchKey

تابع ساخت کلید جستجوی محدود(search_key: رشته، embedded_params: رشته): رشته
از یک کلید جستجو و پارامترهای جستجوی جاسازی‌شده به شکل JSON، بدون هیچ درخواستی به سرور، یک کلید جستجوی محدود امضا می‌کند. پارامترها، مثل filter_by و expires_at، روی هر جستجویی که با آن انجام شود اعمال می‌شوند و مرورگر نمی‌تواند تغییرشان دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateKey.salam

کلید جستجوی محدود ScopedSearchKey

تابع کلید جستجوی محدود(search_key: رشته، p: پارامترهای جستجو، expires_at: صحیح۶۴): رشته
ساخت کلید جستجوی محدود با پارامترهایی که از یک پارامترهای جستجو گرفته می‌شوند؛ ۰ یعنی بدون انقضا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-CreateKey.salam

جدید New

تابع جدید(url: رشته، api_key: رشته): کلاینت
کارخواهی برای یک گره. نشانی بدون طرح http:// می‌گیرد و اسلش پایانی حذف می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

خوشه جدید NewCluster

تابع خوشه جدید(urls: وکتور<رشته>، api_key: رشته): کلاینت
کارخواهی برای چند گره که به نوبت امتحان می‌شوند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

تنظیم نزدیک‌ترین گره SetNearestNode

تابع تنظیم نزدیک‌ترین گره(c &: کلاینت، url: رشته)
گرهی را که اول امتحان می‌شود تعیین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

افزودن گره AddNode

تابع افزودن گره(c &: کلاینت، url: رشته)
یک گره دیگر به کارخواه می‌افزاید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

افزودن سرصفحه AddHeader

تابع افزودن سرصفحه(c &: کلاینت، name: رشته، value: رشته)
یک سرآیند به همه‌ی درخواست‌های این کارخواه می‌افزاید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

آزادسازی Free

تابع آزادسازی(c &: کلاینت)
حافظه‌ای را که کارخواه نگه داشته آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

گره سالم است NodeHealthy

تابع گره سالم است(c: کلاینت، index: صحیح): منطقی
آیا گره این اندیس همین حالا می‌تواند امتحان شود؛ -1 درباره‌ی نزدیک‌ترین گره می‌پرسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

موفق Ok

تابع موفق(err: خطا): منطقی
وقتی آخرین فراخوانی موفق بود درست است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

پیدا نشد IsNotFound

تابع پیدا نشد(err: خطا): منطقی
وقتی سرور ۴۰۴ پاسخ داد درست است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

تداخل دارد IsConflict

تابع تداخل دارد(err: خطا): منطقی
وقتی سرور ۴۰۹ پاسخ داد درست است، مثلا وقتی مجموعه یا سند از قبل وجود دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

متن خطا ErrorString

تابع متن خطا(err: خطا): رشته
خطا به صورت یک سطر متن، یا خالی وقتی خطایی نیست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

درخواست Request

تابع درخواست(c: کلاینت، method: رشته، path: رشته، body: رشته، err &: خطا): رشته
هر درخواستی را با بدنه‌ی JSON می‌فرستد و بدنه‌ی پاسخ را برمی‌گرداند؛ برای مسیرهایی که این بسته تابعی برایشان ندارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

درخواست با نوع RequestAs

تابع درخواست با نوع(c: کلاینت، method: رشته، path: رشته، content_type: رشته، body: رشته، err &: خطا): رشته
مثل درخواست، با نوع محتوای دلخواه شما.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

سلامت Health

تابع سلامت(c: کلاینت، err &: خطا): منطقی
وقتی گره آماده‌ی خدمت است درست است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

سالم است IsHealthy

تابع سالم است(c: کلاینت): منطقی
سلامت بدون آرگومان خطا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

اشکال زدایی Debug

تابع اشکال زدایی(c: کلاینت، err &: خطا): رشته
پاسخ /debug همراه با نسخه‌ی سرور، به شکل JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

نسخه سرور ServerVersion

تابع نسخه سرور(c: کلاینت، err &: خطا): رشته
نسخه‌ی سرور، مثل 30.2.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

آمار Stats

تابع آمار(c: کلاینت، err &: خطا): رشته
نرخ درخواست‌ها و تاخیرها، به شکل JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

سنجه ها Metrics

تابع سنجه ها(c: کلاینت، err &: خطا): رشته
اعداد حافظه، دیسک و پردازنده، به شکل JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

وضعیت Status

تابع وضعیت(c: کلاینت، err &: خطا): وضعیت خوشه
وضعیت raft گره.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

ساخت تصویر لحظه ای CreateSnapshot

تابع ساخت تصویر لحظه ای(c: کلاینت، snapshot_path: رشته، err &: خطا): منطقی
برای پشتیبان‌گیری، یک تصویر لحظه‌ای از داده‌ها در پوشه‌ای روی سرور می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

رای گیری Vote

تابع رای گیری(c: کلاینت، err &: خطا): منطقی
از گره می‌خواهد انتخاب رهبر را آغاز کند؛ اگر کرد درست است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

پاک کردن حافظه نهان ClearCache

تابع پاک کردن حافظه نهان(c: کلاینت، err &: خطا): منطقی
حافظه‌ی نهان نتیجه‌های جستجو را خالی می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

فشرده سازی پایگاه CompactDB

تابع فشرده سازی پایگاه(c: کلاینت، err &: خطا): منطقی
پایگاه داده‌ی روی دیسک را فشرده می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

بازنشانی همتاها ResetPeers

تابع بازنشانی همتاها(c: کلاینت، err &: خطا): منطقی
همتاهای raft گرهی را که حد نصابش را از دست داده بازنشانی می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

تغییرات طرح SchemaChanges

تابع تغییرات طرح(c: کلاینت، err &: خطا): وکتور<رشته>
تغییرات طرحی که هنوز در جریان‌اند، هر کدام یک شیء JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

به‌روزرسانی پیکربندی UpdateConfig

تابع به‌روزرسانی پیکربندی(c: کلاینت، config: رشته، err &: خطا): منطقی
تنظیمات سرور را در زمان اجرا تغییر می‌دهد؛ آن‌ها را به شکل JSON بدهید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

تنظیم گزارش درخواست کند SetSlowRequestLog

تابع تنظیم گزارش درخواست کند(c: کلاینت، millis: صحیح، err &: خطا): منطقی
درخواست‌هایی را که کندتر از این چند میلی‌ثانیه باشند ثبت می‌کند؛ -1 گزارش را خاموش می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-Client.salam

نمایه سازی سند IndexDocument

تابع نمایه سازی سند(c: کلاینت، collection: رشته، document: رشته، opts: گزینه های نوشتن، err &: خطا): رشته
یک سند را با گزینه‌های داده‌شده می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

ساخت سند CreateDocument

تابع ساخت سند(c: کلاینت، collection: رشته، document: رشته، err &: خطا): رشته
یک سند تازه نمایه می‌کند و آن را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

درج سند UpsertDocument

تابع درج سند(c: کلاینت، collection: رشته، document: رشته، err &: خطا): رشته
یک سند می‌سازد یا سند هم‌شناسه را جایگزین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

جایگذاری سند EmplaceDocument

تابع جایگذاری سند(c: کلاینت، collection: رشته، document: رشته، err &: خطا): رشته
یک سند می‌سازد یا فیلدهای داده‌شده‌ی سند هم‌شناسه را به‌روزرسانی می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

به‌روزرسانی سند UpdateDocument

تابع به‌روزرسانی سند(c: کلاینت، collection: رشته، id: رشته، partial: رشته، err &: خطا): رشته
چند فیلد از یک سند را تغییر می‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

به‌روزرسانی سند با گزینه UpdateDocumentWith

تابع به‌روزرسانی سند با گزینه(c: کلاینت، collection: رشته، id: رشته، partial: رشته، dirty_values: رشته، err &: خطا): رشته
به‌روزرسانی سند با یک حالت dirty_values.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

دریافت سند GetDocument

تابع دریافت سند(c: کلاینت، collection: رشته، id: رشته، err &: خطا): رشته
یک سند، با شناسه‌اش، به شکل JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

سند وجود دارد DocumentExists

تابع سند وجود دارد(c: کلاینت، collection: رشته، id: رشته، err &: خطا): منطقی
آیا سندی با این شناسه وجود دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

حذف سند DeleteDocument

تابع حذف سند(c: کلاینت، collection: رشته، id: رشته، err &: خطا): رشته
یک سند را حذف می‌کند و آن را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

حذف با پالایه DeleteByFilter

تابع حذف با پالایه(c: کلاینت، collection: رشته، filter_by: رشته، batch_size: صحیح، err &: خطا): صحیح۶۴
همه‌ی سندهایی را که با فیلتر جور باشند حذف می‌کند و تعدادشان را برمی‌گرداند؛ ۰ برای اندازه‌ی دسته یعنی پیش‌فرض سرور.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

به‌روزرسانی با پالایه UpdateByFilter

تابع به‌روزرسانی با پالایه(c: کلاینت، collection: رشته، filter_by: رشته، partial: رشته، err &: خطا): صحیح۶۴
فیلدهای داده‌شده‌ی همه‌ی سندهایی را که با فیلتر جور باشند تغییر می‌دهد و تعدادشان را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

درون ریزی جیسون خطی ImportJSONL

تابع درون ریزی جیسون خطی(c: کلاینت، collection: رشته، jsonl: رشته، opts: گزینه های نوشتن، err &: خطا): نتیجه درون ریزی
سندهایی را که هر کدام یک شیء JSON در یک سطرند درون‌ریزی می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

درون ریزی سندها ImportDocuments

تابع درون ریزی سندها(c: کلاینت، collection: رشته، documents: وکتور<رشته>، opts: گزینه های نوشتن، err &: خطا): نتیجه درون ریزی
فهرستی از سندهای JSON را درون‌ریزی می‌کند؛ هر سند اول در یک سطر گذاشته می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

درون ریزی از نوع ImportOf

تابع درون ریزی از نوع<T>(c: کلاینت، collection: رشته، documents: وکتور<T>، opts: گزینه های نوشتن، err &: خطا): نتیجه درون ریزی
فهرستی از ساختارهای خودتان را درون‌ریزی می‌کند که با json.Marshal نوشته می‌شوند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

ساخت سند از نوع CreateDocumentOf

تابع ساخت سند از نوع<T>(c: کلاینت، collection: رشته، document: T، err &: خطا): رشته
یک سند را از ساختار خودتان می‌سازد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

درج سند از نوع UpsertDocumentOf

تابع درج سند از نوع<T>(c: کلاینت، collection: رشته، document: T، err &: خطا): رشته
یک سند را از ساختار خودتان درج یا جایگزین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

رمزگشایی سند DecodeDocument

تابع رمزگشایی سند<T>(document: رشته، out &: T، err &: خطا): منطقی
یک سند JSON را در ساختار شما می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

دریافت سند به نوع GetDocumentAs

تابع دریافت سند به نوع<T>(c: کلاینت، collection: رشته، id: رشته، out &: T، err &: خطا): منطقی
یک سند را با شناسه‌اش در ساختار شما می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

رمزگشایی سندها DecodeDocuments

تابع رمزگشایی سندها<T>(documents: وکتور<رشته>، out &: وکتور<T>، err &: خطا): منطقی
فهرستی از سندهای JSON را در فهرستی از ساختارهای شما می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

برون بری جیسون خطی ExportJSONL

تابع برون بری جیسون خطی(c: کلاینت، collection: رشته، opts: گزینه های برون بری، err &: خطا): رشته
سندها را برون‌بری می‌کند، هر کدام یک شیء JSON در یک سطر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam

برون بری سندها ExportDocuments

تابع برون بری سندها(c: کلاینت، collection: رشته، opts: گزینه های برون بری، err &: خطا): وکتور<رشته>
سندها را به صورت فهرست برون‌بری می‌کند، هر عضو یک سند JSON.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-typesense-ImportDocuments.salam