برنامه نویسی

یادگیری مایک: جایگزینی، به روز رسانی، شکل های کلمه

درمورد من

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

مرحله دوم: جایگزین کردن، به روز رسانی، فرم های کلمه

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

این مقاله به عنوان ادامه مقاله قبلی و بر اساس آن است.

برخلاف اکثر پایگاه‌های داده، Manticore از یک مدل پیشرفته برای تشخیص متون ذخیره‌شده استفاده می‌کند. سیستم پردازش متن مبتنی بر راه حل های NLP (پردازش زبان طبیعی) است.

توضیح کوچکی از فناوری برای درک کلی در اینجا ضرری ندارد. NLP برای تشخیص زبان “طبیعی” که در آن ارتباط برقرار می کنیم طراحی شده است. در نگاه اول، به نظر می رسد که هیچ چیز پیچیده ای در تشخیص متن وجود ندارد، از نظر فنی با ظهور راه حل های پردازش متن با استفاده از الگوریتم های یادگیری ماشین، این امر پیچیده شده است. در مورد ما، ما آنقدر عمیق نخواهیم شد و از راه حل های آماده پردازش متن از Manticore Search استفاده خواهیم کرد که از قبل در پایگاه داده ساخته شده اند. این سیستم از نشانه گذاری (جداسازی متن) به بخش های کوچک جداگانه استفاده می کند: با جملات و کلمات جداگانه، که به شما امکان می دهد کلمات، عبارات و پاراگراف های مورد نظر را به طور کلی در پایگاه داده به سرعت پیدا کنید. (برای اطلاعات بیشتر در مورد توکن سازی داده ها، این لینک را بررسی کنید.)

در اینجا چند کلمه در مورد فن آوری های Manticore وجود دارد:

  • ریشه کردن فرآیند کاهش کلمات به شکل ریشه آنها است. به عنوان مثال، “راه رفتن”، “راه رفتن” و “راه رفتن” همه ریشه های کلمه “راه رفتن” هستند.
  • Lemmatization فرآیند تغییر شکل های مختلف یک کلمه به شکل اصلی آن است که به آن لم می گویند. به عنوان مثال، کلمه “خوردن” می تواند به صورت “خوردن”، “خوردن” و “خوردن” ظاهر شود. کلمه لم برای همه این تغییرات “Eat” است که شکل اصلی فرهنگ لغت آن است.
  • برای بهبود دقت و کیفیت جستجوی پیشرفته، چندین راه حل دیگر در کار است: فرم های کلمه، استثناها و کلمات توقف.

lemmatizer و stemmer یک عملکرد مشترک از عادی سازی کلمات را به یک شکل انجام می دهند، اما به روش های مختلف، که هر کدام مزایا و معایب خود را دارند.

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

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

استفاده از یک فایل word در جدول

جداول جدید

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

از آنجایی که افسارها و مهارها در یک دسته محصول قرار می گیرند و فیلد خاصی در پایگاه داده برای نشان دادن گروه آنها وجود ندارد، استفاده از یک فایل word می تواند مفید باشد. این فایل می تواند با اجازه دادن به اضافه کردن کلمات مرتبط در هنگام جستجوی “leash” کمک کند. به عنوان مثال، با افزودن کلماتی مانند “harness” یا “flexi” به فرهنگ لغت فرم کلمه، جستجوی “leash” نیز نتایجی برای “harness” و “flexi” به دست می‌دهد.

بیایید محصولات موجود در این فروشگاه حیوانات خانگی را بررسی کنیم:

عنوان شرح قیمت دسترسی
افسار بوم سبز، تا 50 کیلوگرم، 5 متر بند سگ بوم مقاوم 5 متری مناسب برای نژادهای سگ بزرگ 5.00 یورو آره
بند کش صورتی، تا 10 کیلوگرم، 3 متر یک بند زیبا برای خانم های شیک پوش و همراهان چهارپای آنها 12.00 یورو نه
دسته صورتی، تا 10 کیلوگرم برای نگهبانان اتاق که به خیابان رها شده و به اشتباه سگ را صدا می کنند 8.00 یورو آره
بند سگ قابل جمع شدن، 10 کیلوگرم، 5 متر فلکسی برای سگ های تا 10 کیلوگرم. طول آن با در نظر گرفتن طول بازوی بیرون کشیده مالک 5 متر است 7.50 یورو آره
غذای سگ 1 کیلوگرم غذای خشک برای حیوان خانگی شما 4.30 یورو نه
غذای گربه 1 کیلوگرم اگر گربه شما با صدای بلند فریاد می زند و غذا می خواهد! 2.80 یورو آره
قلاده کک برای گربه ها گربه ها نباید ناقل کک باشند. 23.20 یورو آره
قطره کک برای سگ تا 10 کیلوگرم قطرات مسافران ناخوانده روی پوست مدافع شما 14.30 یورو آره

را خواهیم ساخت Title فیلد فقط یک رشته، استفاده کنید Description برای جستجوی متن کامل، را تنظیم کنید Price به عنوان یک عدد ممیز شناور، و Availability به عنوان یک مقدار بولی.

برای ایجاد یک ارتباط کلمه ای منطقی بین “leashes”، “harness” و “flexi”، آنها را در یک فایل قرار می دهیم. /tmp/wordforms/ و اطمینان حاصل کنید که با همه کاربران در سیستم به اشتراک گذاشته شده است.

mkdir /tmp/wordforms
cd /tmp/wordforms
mcedit wf_pet_products.txt
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ویرایشگر داخلی در MC نامیده می شود mcedit. برای اجرای آن، تایپ کنید mcedit .

بیایید شکل های کلمه خود را در آنجا اضافه کنیم:

flexi > leash
harness > leash
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اگر همه چیز را درست انجام دهید، چیزی شبیه به این را در ترمینال خود خواهید دید:
توضیحات تصویر
F2 صرفه جویی
وارد تایید
F10 خارج شوید

اکنون یک فایل با کلمات داریم که بعداً با جدول جدید استفاده خواهیم کرد. به خاطر بسپارید یا یادداشت کنید که کجا ذخیره شده است:

/tmp/wordforms/wf_pet_products.txt
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حال برای ایجاد تغییرات بیشتر در پایگاه داده، باید به آن متصل شده و جدولی را با ستون های خود تنظیم کنیم. سپس، ما باید یک فایل stemmer و wordforms را که قبلا ساخته ایم پیوند دهیم:

mysql -h0 -P9306
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

CREATE TABLE products (name STRING, info TEXT, price FLOAT, avl BOOL) morphology = 'stem_en' wordforms='/tmp/wordforms/wf_pet_products.txt';
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حالا بیایید بررسی کنیم که کدام فیلدها در جدول ما ایجاد شده اند:

DESC products;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیحات تصویر
تمام فیلدهایی که ما مشخص کردیم وجود دارند، اما یک فیلد اضافی ظاهر شده است – id. این فیلد برای Manticore در نظر گرفته شده است تا یک سند را در پایگاه داده به طور منحصر به فرد شناسایی کند، بنابراین بدون در نظر گرفتن مشخصات، زمانی که جداول مقداردهی اولیه می شوند، به طور خودکار ایجاد می شود. فیلد اطلاعات دارای خواص است indexed stored، نشان دهنده مشارکت آن در فرآیند جستجوی متن کامل است. توجه به این نکته ضروری است که ترتیب فیلدها با ترتیب مشخص شده هنگام ایجاد جدول متفاوت است. بنابراین، هنگام پر کردن جدول، این مورد باید در نظر گرفته شود، به خصوص در هنگام به روز رسانی کل ردیف ها بدون تعیین دنباله فیلد در دستور. به عنوان مثال، در REPLACE دستور، که به زودی در مورد آن صحبت خواهیم کرد.

در مرحله بعد، ما باید پارامترهای کلی جدول، مانند فایل word form و stemmer قبلا متصل شده را بررسی کنیم. هنگام ایجاد جدول، اگر در نام فایل wordforms خطایی وجود داشته باشد، سیستم آن را نادیده می گیرد و هیچ خطایی یا اخطاری ایجاد نمی کند.

SHOW TABLE products SETTINGS;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیحات تصویر
در بالا، ممکن است متوجه شوید که اگرچه ما مسیر فایل را در آن مشخص کرده‌ایم /tmp/wordforms/، Manticore آن را ذخیره کرد /var/lib/manticore/products/. این نشان می دهد که Manticore یک کپی از فایل را به جدول ایجاد شده پیوست کرده است. اکنون فایل برای نمایه سازی این جدول ثابت شده است. جایگزین کردن فایل word form در حال اجرا بر اساس طراحی در دسترس نیست، زیرا نیاز به فهرست مجدد کل جدول دارد، که ممکن است در صورت داشتن یک جدول بسیار بزرگ، مطلوب نباشد. در ادامه درباره نحوه جایگزینی ایمن و قابل پیش بینی چنین فایلی بحث خواهیم کرد.

با این کار تنظیمات جدول تکمیل می شود و مرحله بعدی وارد کردن داده های مورد نیاز است. ورود داده ها مشابه هر پایگاه داده SQL انجام می شود.

INSERT INTO products (name, price, avl) VALUES ('Canvas leash, green, up to 50 kg, 5m', 5.0, 1);
INSERT INTO products (name, price, avl, info) VALUES ('Elastic leash, pink, up to 10 kg, 3m', 12.00, 0, 'A beautiful leash for sophisticated ladies and their four-legged companions');
INSERT INTO products (name, price, avl, info) VALUES ('Pink harness, up to 10 kg', 8.00, 1, 'For room guards released into the street and mistakenly called a dog');
INSERT INTO products (name, price, avl, info) VALUES ('The flexi retractable dog leash, 10 kg, 5m', 7.50, 1, 'A flexi for dogs up to 10 kg. The length is 5 meters, taking into account the length of the owner\'s pulled out arm');
INSERT INTO products (name, price, avl, info) VALUES ('Dog food, 1kg', 4.30, 0, 'Dry food for your pet');
INSERT INTO products (name, price, avl, info) VALUES ('Cat food, 1kg', 2.80, 1, 'If your cat is yelling loudly and demanding food!');
INSERT INTO products (name, price, avl, info) VALUES ('Flea collar for cats , 1kg', 23.20, 1, 'Cats shouldn\'t be flea carriers.');
INSERT INTO products (name, price, avl, info) VALUES ('Flea drops for dogs up to 10 kg', 14.30, 1, 'Drops from uninvited passengers on the skin of your defender');
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مراقب آپستروف ها باشید. در متن اختصاراتی وجود دارد که از آنها استفاده می کنند و مهم است که آنها را از بقیه متن جدا کنید. \: 'Isn\'t it'. مانتیکور از دو نقل قول پشتیبانی نمی کند برای رشته ها، که برای جلوگیری از فرار از تک آپاستروف مفید است.

در اولین درخواست بالا، info فیلد عمداً حذف شد تا نشان دهد چگونه یک فیلد متن کامل را به روز کنید. مهم است که توجه داشته باشید که به روز رسانی فیلدهای متنی و فیلدهای ویژگی متفاوت است. فیلدهای متن کامل با به روز رسانی می شوند REPLACE دستور، که باعث ایجاد فهرست مجدد مقادیر جدید می شود، در حالی که UPDATE دستور برای سایر فیلدها کافی است. این به این دلیل است که فیلدهای ویژگی در فرآیند نمایه سازی جستجوی متن کامل دخیل نیستند.

حالا بیایید از آن استفاده کنیم REPLACE دستور اضافه کردن داده به فیلدهای خاصی از رکوردهای موجود. برای استفاده از این دستور، به شناسه منحصر به فرد ردیفی که می خواهیم در آن تغییرات ایجاد کنیم یا اطلاعات اضافه کنیم، نیاز دارید. ابتدا با استفاده از داده های لازم را دریافت می کنیم SELECT * FROM products;

SELECT * FROM products WHERE name = 'Canvas leash, green, up to 50 kg, 5m';
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

REPLACE INTO products VALUES (<id>, <info>, <avl>, <price>, <name>);
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

REPLACE INTO products VALUES (8217224102746783745, 'Sturdy canvas dog leash for 5 meters, suitable for large dog breeds', 1, 5.0, 'Canvas leash, green, up to 50 kg, 5m');
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مراقب کد اینجا باشید، اگر به سادگی دستورات را از مقاله کپی کنید، مقدار فیلد ID در جدول شما متفاوت خواهد بود! اگر Manticore رکوردی با شناسه مشخص شده پیدا نکرد، یک رکورد جدید ایجاد می شود.

برای به روز رسانی فیلدهای “ویژگی ها”، می توانید از UPDATE فرمان فقط به عنوان یک نکته جانبی، در هنگام وارد کردن داده ها، قیمت روی افسار سبز اندکی کاهش یافت:

update products set price = 4.6 where id = 8217224102746783745;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

SELECT * FROM products WHERE id = 8217224102746783745;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیحات تصویر
ما به نتیجه دلخواه رسیدیم، حالا بیایید جستجو را امتحان کنیم، زیرا ما در حال ایجاد یک بانک اطلاعاتی از محصولات برای فروشگاه هستیم تا پیدا کردن محصول را برای فروشنده آسانتر کنیم. دستور مورد استفاده برای جستجو در جدول است select * from

where match('').

SELECT * FROM products WHERE match('harness');
SELECT * FROM products WHERE match ('leash');
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

SELECT * FROM products WHERE name = 'Pink harness, up to 10 kg';
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیحات تصویر

REPLACE INTO products VALUES (8217224102746783747,'Harness for room guards released into the street and mistakenly called a dog', 1, 8.0, 'Pink harness, up to 10 kg');
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بیایید بررسی کنیم که چه اتفاقی افتاده است:

SELECT * FROM products WHERE match('harness');
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

گسترش میز

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

عنوان شرح قیمت دسترسی
پمپ برای آکواریوم پمپ با فیلتر داخلی برای آکواریوم. ظرفیت 150 لیتر در ساعت 32.00 یورو آره
فیلتر اتوماتیک آکواریوم درایو یکبار مصرف با فیلتر، ظرفیت 100 لیتر در ساعت. 28.00 یورو آره
تور ماهی تور ماهی آکواریومی آتروماتیک 3.00 یورو آره

بیایید آنها را به پایگاه داده اضافه کنیم:

INSERT INTO products (name, info, price, avl) VALUES ('The pump for the aquarium.', 'Pump with built-in aquarium filter. Capacity 150 l/h', 32, 1), ('Automatic filter for aquarium', 'Disposable drive with filter, capacity 100 l/h', 28.00, 1), ('Fish net', 'Atraumatic aquarium fish net', 3, 1);
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

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

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

SELECT * FROM products WHERE match ('pump');
SELECT * FROM products WHERE match ('filter');
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیحات تصویر
باشه این یعنی یه چیزی با این حال، درایو یک پمپ در نظر گرفته نمی شود. این باید به لیست کلماتی که استفاده می کنیم اضافه شود…
بیایید آن را انجام دهیم.
اوه، اینجا یک مشکل کوچک وجود دارد. به این راحتی نیست...
هنگامی که ما یک سیستم جستجو برای متن ایجاد می کنیم، همه کلمات را در یک جدول قرار می دهیم و آنها را به نشانه تبدیل می کنیم تا کارایی جستجو را افزایش دهیم. این نشانه‌ها متعاقباً برای تسریع روند جستجو به‌روزرسانی نمی‌شوند. با این وجود، مواردی وجود دارد که باید فایل wordforms را به روز کنیم و در نتیجه توکن ها را نیز تغییر دهیم. بیایید لیست کلمات موجود در فایل wordforms خود را به روز کنیم و نام محصول را نیز در آن قرار دهیم name فیلد به فهرست جستجو.

برای به روز رسانی فایل wordforms در جدول، این مراحل را دنبال کردم:

  1. با استفاده از این جدول یک Dump ایجاد کنید mysqldump.
  2. فایل wordforms را به روز کنید.
  3. میز قدیمی را رها کنید
  4. یک جدول جدید با فرم های کلمه به روز شده در بخش مورفولوژی ایجاد کنید.
  5. جدول جدید را از فایل dump پر کنید.

ایجاد فایل dump (پشتیبان):

در هر شرایط نامشخص، برای جلوگیری از از دست رفتن اطلاعات، از جدول یک نسخه پشتیبان تهیه کنید. (این قانون می تواند به عنوان یادآوری روی دیوار نمایش داده شود).
این نیز به ما کمک می کند تا به هدف خود برسیم.
برای انجام این کار، باید از اتصال SQL جدا شده و از آن استفاده کنیم mysqldump ابزار

exit;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

mkdir /tmp/manticore_dumps
cd /tmp/manticore_dumps
mysqldump -h0 -P9306 -tc --compact manticore products > products.sql
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پرچم هایی که من استفاده کردم این بود:

  • -t - حذف کردن create table بیانیه از محل تخلیه
  • -c - برای تعیین نام ستون ها در INSERT دستورات
  • --compact - انجام یک تخلیه پایگاه داده در قالب فشرده، که رویه های بررسی در دسترس بودن جداول، حذف آنها، ایجاد جدول های جدید، تجویز تنظیمات برای جداول ایجاد شده و سایر اقدامات سازمانی برای استقرار را حذف می کند. در مورد ما، این مراحل ضروری نبود، زیرا ما نیاز به ثبت یک فایل دیکشنری جدید در جدول داشتیم.
  • manticore - نام پایگاه داده است mysqldump، و همیشه باید باشد manticore هنگام استفاده از mysqldump با مانتیکور
  • products - نام جدول ما است که دامپ برای آن ایجاد می شود.
  • products.sql - نام فایلی است که dump در آن آپلود می شود. دایرکتوری برای قرار دادن فایل به دایرکتوری که از آن به طور پیش فرض است mysqldump راه اندازی شد. من توصیه می کنم مشخص کنید /tmp/ تا اطمینان حاصل شود که نمونه ها با موفقیت بیشتر کار می کنند. همچنین می‌توانید مسیر کامل را تایپ کنید: /tmp/manticore_dumps/products.sql.

نگران نباشید اگر مشاهده کردید: "-- هشدار: آمار ستون توسط سرور پشتیبانی نمی شود." وقتی از این ابزار mysql با Manticore استفاده می کنید، طبیعی است.

عالی است، ما اولین زباله خود را داریم!
توضیحات تصویر

به روز رسانی فایل wordforms:

آیا فراموش کرده اید که فایل منبع واژه فرم ها در کجا قرار دارد؟

cd /tmp/wordforms
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اگر از MC استفاده می کنید و به دلایلی ستون های حاوی فایل ها را نمی بینید، سعی کنید از آن استفاده کنید Ctrl + O ترکیبی اگر چیزی تغییر نکند، شاید MC در حال اجرا نباشد.
توضیحات تصویر
در مرحله بعد، از کلیدهای جهت دار برای پیمایش استفاده کنید. هنگامی که نیاز به انتخاب یک فایل دارید، فشار دهید F4 برای باز کردن فایل انتخاب شده
اضافه کردن رشته جدید: "drive > pump"
توضیحات تصویر
ذخیره و بستن F2، وارد، F10.
فایل به روز شد

حذف جدول و ایجاد جدول جدید:

قبل از حذف جدول، لطفاً مطمئن شوید که Dump را دارید و مطمئناً حاوی اطلاعات ما است.

cd /tmp/manticore_dumps/
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فایل dump را انتخاب کنید و دکمه را فشار دهید F3 را فشار دهید تا آن را مشاهده کنید.
با استفاده از دستور می توانید همین کار را در کنسول انجام دهید cat /tmp/manticore_dumps/products.sql.

شما باید چیزی شبیه به این را ببینید:
توضیحات تصویر
خوب، بیایید جلو برویم و جدول قدیمی خود را رها کنیم و یک جدول جدید ایجاد کنیم:

mysql -h0 -P9306
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

DROP TABLE products;
CREATE TABLE products (name TEXT, info TEXT, price FLOAT, avl BOOL) morphology = 'stem_en' wordforms='/tmp/wordforms/wf_pet_products.txt';
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بنابراین، ما این جدول را حذف کردیم و بلافاصله دوباره آن را ساختیم (با استفاده از همان دستور قبلی اما با یک تغییر کوچک: اکنون قسمت نام نیز برای متن است) و اکنون باید اطلاعاتی را به آن اضافه کنیم.

exit;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جمع آوری مجدد از زباله:

mysql -h0 -P9306 < /tmp/manticore_dumps/products.sql
mysql -h0 -P9306
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پر کردیم بیایید بررسی کنیم که در پایان چه چیزی داریم:

SELECT * FROM products WHERE match ('pump');
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

عالی، همه کار می کنند!
توضیحات تصویر

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

در این مقاله، نحوه تنظیم و استفاده از Manticore Search برای موجودی فروشگاه حیوانات خانگی را نشان دادم. Manticore با استفاده از شکل‌های کلمه و مورفولوژی به بهبود نتایج جستجو با پیوند دادن نام‌ها و انواع محصولات مرتبط کمک می‌کند. من نحوه اضافه کردن موارد جدید، به روز رسانی موارد موجود و اطمینان از ثبات داده ها در طول به روز رسانی های اصلی مانند تغییر فایل های wordforms را پوشش دادم. این به مبتدیان کمک می کند تا ویژگی های Manticore Search را به طور موثر درک کرده و به کار گیرند و جستجوی داده ها را کارآمدتر می کند. پست‌های آینده ویژگی‌های بیشتری را بررسی خواهند کرد، بنابراین بیایید با هم به آزمایش Manticore ادامه دهیم تا پروژه‌های شما را ارتقا دهیم.

برای امروز کافی است. مایک، امضا کردن
توضیحات تصویر

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا