سؤال

أحتاج إلى بحث باستخدام خوارزمية ذات صلة وقاعدة البيانات هي 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)
)

وهذا يعمل كبيرة حقا.

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