نگاهی به مسیر پیدایش Tantivy و گفتگو با سازنده آن، پل ماسورل — A Conversation with Paul Masurel, Creator of Tantivy
خلاصه
پل ماسورل، خالق موتور جستجوی رستی Tantivy، از انگیزه ساخت این کتابخانه در برابر جاوا و Apache Lucene میگوید. این مصاحبه چالشهای توسعه متنباز، رقابت سالم با اکوسیستم الاستیک و شکلگیری پروژههایی مانند Quickwit را بررسی میکند.
برای سالهای متمادی، دنیای متنکاو و جستجوی تماممتن کاملاً در انحصار Apache Lucene بود؛ کتابخانهای قدرتمند و بهینهشده به زبان جاوا که پایهگذار ابزارهایی نظیر Elasticsearch و Solr شد. بسیاری تصور میکردند که مسائل بنیادین این حوزه کاملاً حل شده است تا اینکه در سال ۲۰۱۷ کتابخانهای به نام Tantivy به زبان Rust روی گیتهاب ظاهر شد. این ابزار توسط پل ماسورل (Paul Masurel) و به عنوان تلاشی برای یادگیری عمیقتر موتورهای جستجو و زبان Rust توسعه پیدا کرد.
پسزمینه و انگیزه ساخت Tantivy
پل ماسورل کار خود را در زمینه جستجو با شرکت فرانسوی Exalead شروع کرد و بعدها به عنوان مهندس بکاند در Indeed در ژاپن روی نسخههای قدیمیتر Lucene کار نمود. ایده ساخت یک موتور جستجوی جدید در طول یک پرواز طولانی از توکیو به پاریس در سال ۲۰۱۶ شکل گرفت. او که زبان Rust را یاد میگرفته، به دنبال پروژهای واقعی با نیاز به مدیریت ورودی/خروجی، مدیریت خطا و چندرشتهای (Multithreading) بود.
برخلاف تصور رایج، هدف پل ساخت یک جایگزین کامل برای Lucene نبود؛ بلکه او میخواست کتابخانهای کوچک و ماژولار بسازد که توسعهدهندگان بتوانند آن را در پروژههای خود شخصیسازی کنند. این معماری کتابخانهای (Library-first)، به جای اینکه یک سرور آماده باشد، نشان داد که بهترین ویژگی Tantivy است.
معماری و بازی بنچمارکها
از نظر معماری، Tantivy از مدل Lucene پیروی میکند و عملیات ایندکسگذاری، فشردهسازی و جستجو را انجام میدهد اما توزیعشدگی و ارکستراسیون را به ابزارهای بالادستی میسپارد. زیر hood این کتابخانه از تکنیکهای پیشرفتهای استفاده شده است:
- استفاده از Finite State Transducers برای فرهنگ لغت کلمات (Term Dictionary)
- فشردهسازی ایندکس معکوس شتابدفته با دستورات SIMD
- لایه Memory-mapped I/O که مصرف رم را به شدت پایین نگه میدارد
مدیر پل در Indeed ابزاری به نام Search Benchmark را ایجاد کرد که نشان داد Tantivy در برخی سناریوها حتی دو برابر سریعتر از Lucene عمل میکند. این موضوع باعث ایجاد ارتباطی سازنده میان توسعهدهندگان دو پروژه شد. ادریان گراند (Adrien Grand) از تیم Lucene بررسیهای عمیقی روی عملکرد Tantivy انجام داد و بسیاری از بهینهسازیها به لطف این تعامل دوطرفه راهی Lucene شدند.
چالشهای متنباز و تولد Quickwit
مدیریت یک پروژه متنباز با استقبال بالا چالشهای خاص خود را دارد. پل اشاره میکند که سختترین بخش، بررسی Pull Requestها و گاهی نه گفتن به فیچرهای غیرضروری است تا از پیچیده شدن بیرویه کتابخانه جلوگیری شود.
رشد و همهگیری Tantivy باعث شد تا پل همراه با تیم خود شرکت Quickwit را در سال ۲۰۲۰ بنیانگذاری کند تا یک موتور جستجوی لاگ ابری روی Object Storage (مانند S3) بسازند. این شرکت در سال ۲۰۲۴ توسط Datadog خریداری شد و پل اکنون روی زیرساختهای جستجوی مقیاسپذیر در آنجا فعالیت میکند.
چرا این موضوع برای مهندسین اهمیت دارد؟
تجربه Tantivy نشان میدهد که بازنگری در ابزارهای قدیمی با استفاده از زبانهای مدرن سیستمپایه مانند Rust چقدر میتواند قدرتمند باشد. این پروژه اثبات کرد که رقابت در دنیای اپنسورس به معنای دشمنی نیست و همکاری بین تیمهای رقیب میتواند به پیشرفت کل صنعت نرمافزار کمک کند. امروزه Tantivy به هسته مرکزی ابزارهای مختلفی از پایگاههای داده تراکنشی درون Postgres گرفته تا موتورهای جستجوی لاگ ابری تبدیل شده است.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل