相关疑难解决方法(0)

如何找到相似的结果并按相似性排序?

如何查询按相似性排序的记录?

例如.搜索"股票溢出"将返回

  1. 堆栈溢出
  2. SharePoint溢出
  3. 数学溢出
  4. 政治溢出
  5. VFX溢出

例如.搜索"LO"将返回:

  1. 巴勃罗毕加索
  2. 米开朗基罗
  3. 杰克逊pollock

我需要帮助的是:

  1. 使用搜索引擎索引和搜索MySQL表,以获得更好的结果

    • 使用Sphinx搜索引擎,使用PHP

    • 使用带有PHP 的Lucene引擎

  2. 使用全文索引,查找类似/包含的字符串


什么不好用

  • Levenshtein距离非常不稳定.(UDF,查询)
    搜索"狗"给了我:
    1. 沼泽
    2. 回声
  • LIKE 返回更好的结果,但对于长查询不返回任何内容,尽管存在类似的字符串
    1. dogid
    2. dogaral
    3. 教条

mysql sql sorting string similarity

67
推荐指数
2
解决办法
7万
查看次数

MySQL CREATE FUNCTION语法

我想在MySQL中创建一个函数:

这是SQL代码:

CREATE FUNCTION F_Dist3D (x1 decimal, y1 decimal) 
RETURNS decimal
DETERMINISTIC
BEGIN 
 DECLARE dist decimal;
 SET dist = SQRT(x1 - y1);
 RETURN dist;
END;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

#1064 - You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL 
server version for the right syntax to use near '' at line 10
Run Code Online (Sandbox Code Playgroud)

我在phpMyAdmin中运行此create语句.这个功能有什么问题?

mysql function

45
推荐指数
2
解决办法
11万
查看次数

使用 MySQL 检测垃圾邮件发送者

我看到越来越多的用户在我的网站上注册,只是为了向其他用户发送重复的垃圾邮件消息。我添加了一些服务器端代码来使用以下 mysql 查询检测重复消息:

  SELECT count(content) as msgs_sent 
    FROM messages 
   WHERE sender_id = '.$sender_id.' 
GROUP BY content having count(content) > 10
Run Code Online (Sandbox Code Playgroud)

查询运行良好,但现在他们通过更改消息中的一些字符来解决这个问题。有没有办法用 MySQL 检测到这一点,或者我是否需要查看从 MySQL 返回的每个分组,然后使用 PHP 来确定相似度的百分比?

有什么想法或建议吗?

php mysql spam

5
推荐指数
1
解决办法
568
查看次数

标签 统计

mysql ×3

function ×1

php ×1

similarity ×1

sorting ×1

spam ×1

sql ×1

string ×1