البحث عن نص كامل الخلية

اليوم لعبت الأمثل بطء SQL نوع الطلب

SELECT * FROM 'table' WHERE `field` LIKE '%word%'

أين هي مزعجة لحظة واحدة هنا – جزء آخر كلمة % ‘ %’ وحتى في أكبر واقعية الأحرف % قبل كلمة, لذلك نحن نفعل. رمز حرف البدل % ,قبل أي قيمة, لدينا التطبيق مباشرة يترجم مباشرة إلى بطيء, لأنه بهذه الطريقة توقف التطبيق عن لنا باستخدام الفهارس. كما هو الحال دائماً هناك حلول, ولكن لا تكون دائماً واضحة 😆 عموما الخلية لديك حل لهذه المشكلة مع البحث عن النص الكامل فهرسة. كيف يتم تغيير الحقل هناك مكتوبة كثيرا في الوثائق, ولكن في عجلة من أمرنا سوف تصف كيفية تغيير الطلب الأعلى, نظراً لأننا سنحصل على الدراما قليلاً أخيرا. تشكل لطيف كما ينطبق على حقل النص الكامل, الاستعلام يحتاج إلى تغيير في النموذج:

SELECT * FROM `table` WHERE MATCH (field) AGAINST ('word')

لذا الهيكل واضح ولا حاجة للمناقشة لا لزوم لها. الاستعلام أعلاه سوف تدخل حيز النفاذ, إذا كانت الكلمة, التي تقومون بها طلب على الأقل 4 الرمز, هذه هي القيمة الافتراضية, إذا كنت ترغب في تعديله، يجب عليك تحديد قيمة, която желаете в my.cnf в частта [mysqld] مع إعلان ft_min_word_len= 3 أو 2, 1 не е добър избор очевидно 😉 . بعد أن تقوم بتغيير القيمة وإعادة تشغيل الخلية الخادم-ضرورة القيام بإصلاح للجداول, من أجل فهرسة جديدة تدخل حيز النفاذ. هنا كل شيء واضح: يمكنك تغيير, إعادة تعيين, مؤشرات ريبيلدفام ولي طلب والعودة 0 فحص خط مع 😀

SHOW VARIABLES

أرى أن القيم, لقد طلبت من حيز النفاذ, فهارس ريبيلدفام مرة أخرى – نفس النتيجة. الكراهية 🙄, غير مريح جداً. ОТ ТУК НАТАТЪК ЗАПОЧНА ЕДНО ГОЛЯМО РУГАЕНЕ РОВЕНЕ الشجاعة КЛЮЧА الشجاعة БАРАКАТА 😀 КОЙТО СЕ ДОСТА ОКАЗА, ДОСТА ИНТЕРЕСЕН. КАТО ЦЯЛО, КАТО ЗАПОЧНАХ ДА ЧЕТА ДОКУМЕНТАЦИЯТА الشجاعة НЕ ЗНАМ КОЙ ПЪТ СТИГНАХ ДО ЕДИН ИНТЕРЕСЕН ПАСАЖ

Such a technique works best with large collections (في الحقيقة, تم ضبطها بعناية بهذه الطريقة). بالنسبة للجداول الصغيرة جداً, توزيع كلمة لا تعكس على نحو كاف القيمة الدلالية, وهذا النموذج في بعض الأحيان قد تعطي نتائج غريبة. على سبيل المثال, على الرغم من أن كلمة "الخلية" موجود في كل صف من الجدول المواد المعروضة سابقا, بحث عن الكلمة تنتج أية نتائج

ГРЕДА 😳 Дам табличката ми беше малка – كان لا يزال اختبار. في جدول Naših تطبيق كبير مع أكثر 2 000 000 النظام والأمور هناك نائمة. كذلك أنه من الواضح المشكلة فعلا. لكي يكون واضحا أن الحل, وسوف أذكر بإيجاز, أن دعم البحث عن نص كامل 3 أوضاع متقدمة قيمة منطقية , التعبيرات و اللغة الطبيعية كآخر يعمل بشكل افتراضي. يمكنك التحقق من الوثائق حول أوضاع مختلفة, سأوضح مع 2-3 الكلمات إلى منطقية لأنها مفتاح. وهو يدعم عوامل التشغيل المنطقية من النوع, أو , لا وهلم جرا، ويمكن أن تجعل بعض السحر مع عبارات البحث, أن يكون, هناك آخر، إلخ.. يدعم والرمز *, وهذا هو ما يعادل أحرف البدل % 😉 أنه من المفيد, عندما يكون مصطلح البحث في طول الفترة ft_min_word_len أو علب صغيرة ;). على الأقل بالنسبة لي في الجدول مع حول 100 الخط هو القيام بعمل مثالية. الشيء الوحيد الذي ترك لمعرفة وتطبيق الانتهاء:

SELECT * FROM `table` WHERE MATCH (field)
AGAINST ('*word*' IN BOOLEAN MODE)

الآن هنا يأتي وقت الفهرسة يعمل معنا أحرف البدل – الجواب لا أعرف. Принципно мисля, че да, защото не е казано друго в документацията, но в документацията очевидно не се казват или показват много неща 😀

تعزيز طريق Zemanta

2 تعليقات

اترك ردًا

لن يتم نشر عنوان البريد الإلكتروني الخاص بك. يتم وضع علامة الحقول المطلوبة *

مكافحة البريد المزعج *