gpt4 book ai didi

MySQL全文不搜索短电子邮件

转载 作者:行者123 更新时间:2023-11-29 13:55:37 24 4
gpt4 key购买 nike

我在许多列上有一个全文索引,我正在尝试对这些列进行 bool 模式匹配,试图找到电子邮件地址。结果如下:

  • 如果我搜索“test@email.com”(带引号) - 查询会返回正确的结果
  • 如果我搜索“a@b.com”(带引号) - 查询不会返回任何内容

有人可以告诉我为什么简短的电子邮件 a@b.com 没有得到返回,我该如何解决这个问题?

这是我正在使用的查询:

SELECT MATCH(email, phone, title, description) AGAINST('"a@b.com"' IN BOOLEAN MODE) AS score 
FROM thetable WHERE MATCH(email, phone, title, description)
AGAINST('"a@b.com"' IN BOOLEAN MODE) ORDER BY `status` DESC, score DESC

最佳答案

这是两个问题的组合:

  1. @ 不被视为“单词字符”,- 也不被视为“单词字符”,因此实际上搜索 a@b.com归结为搜索单词 abcom
  2. ab 比 ft_min_word_len 短

解决方案是将 @. 视为单词字符。 http://dev.mysql.com/doc/refman/5.6/en/fulltext-fine-tuning.html上列出了几种方法

最实用的方法是添加自定义排序规则,如

中所述

http://dev.mysql.com/doc/refman/5.6/en/full-text-adding-collation.html

关于MySQL全文不搜索短电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15918010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com