سؤال

أريد تحديد صفوف مماثلة للترقيب إلى لقب 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 لمطابقة الأشياء التي تكون قريبة معًا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top