查找MySQL DB中的行,该行与给定字符串具有最多的单词

时间:2014-05-28 23:28:15

标签: php mysql sql

我正打算打电话,我需要在一个列(字符串)中进行搜索,并计算该条目与提供的字符串有多少相同的单词。

我一直在研究LCS,但我并不适合我,因为我不需要匹配实际的子序列,但我需要找到(前4行),与所提供的字符串具有最多的单词,按任意顺序排列。

我已经扯下了一些伪代码,以帮助解释它的要点:

query[] = array of keywords
counter[] = map of rowid => counter

do {
  keywords[]  = (select tags from i´th row from db).explode(" ")

  foreach(word in query[]) {
    foreach(tag in keywords[]) {
      if(word == tag) {
        counter(rowid, count++)
      }
    }
  }
  i++
} while(i <= number_of_rows)

sorted_counter = sort_array_by_value(counter)
row1 = counter[0]
row2 = counter[1]
row3 = counter[2]
row4 = counter[3]

任何帮助将不胜感激。它可以是SQL或PHP,运行时并不是一个很重要的因素。

编辑:澄清

0 个答案:

没有答案