SQL LIKE, как отсортировать результаты по взвешенному количеству вхождений?

У меня есть поисковый запрос:

"Yellow large widgets"

Я разбил его на 3 слова:

1 = "Yellow";
2 = "Large";
2 = "Widgets";

Затем я выполняю поиск с помощью:

SELECT * FROM widgets
    WHERE (description LIKE '%yellow%' OR description LIKE '%large%' OR description LIKE 'widgets') 
    OR (title LIKE '%yellow%' OR title LIKE '%large%' OR title LIKE '%widgets%')

Как я могу отсортировать результаты с этими предубеждениями?

  • Заголовок имеет приоритет, если какой-либо из терминов появляется в заголовке, их следует считать более важными
  • Подсчет числа случаев, результаты с более высоким общим числом случаев должны отображаться первыми

Идеальная методология

  • Подсчитать количество вхождений в описание .
  • Каждое здесь вхождение приносит 1 балл .
  • Подсчитать количество вхождений в заголовке .
  • Каждое title вхождение стоит 5 баллов .
  • Сортировать по точкам.

Но я не знаю, с чего начать это в SQL. res0: Int = 8 для получения результата выше, я написал этот код: val yum = args (0) .toInt val thrill: def last (a: List [Int]): List [Int] = {println (last (List (...

scala> last(List(1, 1, 2, 3, 5, 8))
res0: Int = 8

) для получения результата выше, я написал этот код:

val yum = args(0).toInt
val thrill: 

def last(a: List[Int]): List[Int] = {
     println(last(List(args(0).toInt).last)
     }

В чем проблема с этим кодом?

31
задан Daniel C. Sobral 24 February 2011 в 18:26
поделиться