اقتراح للعثور على صفوف مماثلة في MySQL
سؤال
أريد تحديد صفوف مماثلة للترقيب إلى لقب Row Columun. يوجد في الغالب Columun 5 أو 6 كلمات رئيسية ستة كلمات رئيسية. ما هي الخوارزمية التي توصي بها؟ Soundex ربما؟
ملاحظة: العنوان Columun لديه unicode chracters مثل ç ، Ö ، ş ...
المحلول
إجابة سؤالي MySQL البحث الكامل النص. كما يدعم يونيكود.
SELECT *, match(project_title) against('sample project 55') as similarity
FROM projects
WHERE status IN(1, 2, 3, 4, 5, 6) AND id != ? AND match('sample project 55') against(?)
ORDER BY similarity DESC
نصائح أخرى
إذا كنت تقصد متشابهة في الإملاء والنطق ، فسأبحث في استخدام SOUNDEX
وظيفة.
بصراحة ، سأقوم بإنشاء جدول ل keywords(id, external_id, keyword)
, ، وبعد ذلك ، أنضم إلى الطاولة ضد نفسه ، وأطلب عدد المباريات الموجودة ، ثم أخرج الصفوف مرة أخرى.
إذا كنت تتطابق مع صف واحد ، فيمكنك تحديد ذلك فقط ، للحصول على كفاءة أفضل بكثير مع Join.
يمكن دمج هذا مع Soundex لمطابقة الأشياء التي تكون قريبة معًا
لا تنتمي إلى StackOverflow