سؤال
أحتاج إلى بحث باستخدام خوارزمية ذات صلة وقاعدة البيانات هي mysql.لا بد لي من فرز النتائج حسب التاريخ، إذا كانت الكلمة الرئيسية في العنوان أم لا، وعدد ظهورات الكلمة الرئيسية في النص، وما إلى ذلك.
المباراة ضد لا تعطيني الكثير من السيطرة.
المحلول
شيء من هذا القبيل سيفعل ما تريد:
select
*
from
myTable
order by
sum
(
itemdate='2009-10-09',
title like '%keyword%',
text like '%keyword%',
criteria4,
criteria5
)
- يُرجع كل معيار 0 إذا كان خطأ، و1 إذا كان صحيحًا.
- يمكنك جمع كل من هذه وترتيبها حسب النتيجة.
- ستكون الصفوف التي تحتوي على المعايير الأكثر مطابقة في الأعلى.
يمكنك ضبط كل هذا بالطبع من خلال عدم الحصول على 0 أو 1 لكل معيار.
نصائح أخرى
select
*
from
myTable
order by
(
(itemdate='2009-10-09') +
(title like '%keyword%') +
(text like '%keyword%') +
(criteria4) +
(criteria5)
)
وهذا يعمل كبيرة حقا.
لا تنتمي إلى StackOverflow