Php 在MySQL数据库中查找与给定字符串具有最多共同单词的行
我正在寻找一个调用,我需要在列字符串中进行搜索,并计算该条目与提供的字符串共有多少个单词 我一直在研究LCS,但我并不真正适合我,因为我不需要匹配实际的子序列,但我需要以任意顺序找到前4行,这4行与提供的字符串具有最多的共同单词 我已经下载了一些伪代码,以帮助解释其要点:Php 在MySQL数据库中查找与给定字符串具有最多共同单词的行,php,mysql,sql,Php,Mysql,Sql,我正在寻找一个调用,我需要在列字符串中进行搜索,并计算该条目与提供的字符串共有多少个单词 我一直在研究LCS,但我并不真正适合我,因为我不需要匹配实际的子序列,但我需要以任意顺序找到前4行,这4行与提供的字符串具有最多的共同单词 我已经下载了一些伪代码,以帮助解释其要点: query[] = array of keywords counter[] = map of rowid => counter do { keywords[] = (select tags from i´th r
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,而运行时并不是一个很大的因素
编辑:澄清什么是您的存储引擎,什么是您的列类型?也许这可以帮助您查看参考手册;具体来说,@Victory InnoDB和类型是文本BratAnon&Barranka-我将查看链接,谢谢。