相关疑难解决方法(0)

什么是全文搜索与LIKE

我刚看了一篇在SQL中提到"全文搜索"的帖子.

我只是想知道FTS和LIKE之间的区别是什么.我确实阅读了几篇文章,但找不到任何解释得很好的文章.

sql full-text-search sql-like

124
推荐指数
5
解决办法
6万
查看次数

如何使用 PHP 和 MySQL 全文布尔模式为 MVP 实现自动更正/替代拼写搜索系统

注意:

  • 我可以使用像PspellAspellHunspell这样的字典,但这种情况不适用于企业名称或城市。此外,我不想查询数据库以获取所有建议的更正(尤其是每 300 毫秒触发一次预输入)(有关这些词典的更多问题

  • 我可以使用补充搜索引擎,例如ElasticsearchSphinx,但我没有为此 MVP 分配的财务或人力资源。正如在这个答案中所建议的,MySQL 全文应该足够了,而且不那么复杂。

可用技术:

MySQL 5.7 InnoDB,在所需字段上使用全文索引布尔模式,使用 php-fpm 的 PHP 7.0,使用 Centos 7 的 VPS,corejs-typeahead

目标:

我想从 MySQL 返回用户搜索的结果,无论是正确的搜索还是拼写错误的搜索。

常见问题示例:

连字符

  • 在部分搜索中搜索带有连字符“-”的单词很烦人。

潜在的解决方案:

  • 我必须将搜索查询包含在 "" 中以搜索短语(请参阅 [在此处输入链接描述] [来自 man 的示例]。仍然找不到名为 '"le dé-k-lé"' 的企业,因为to ft_min_word_len=3AND "de" 和 "le" 是停用词(在许多语言中过于频繁)

  • 我可以,但我不会进入以下解决方案,因为我不够熟练或这是不合适的。根据 MySQL 手册的建议修改 MySQL 源修改字符集文件添加新的排序规则。比如我以后想用减号(-)来过滤掉一些单词,就不行了。

撇号/单引号

  • 带有撇号的词经常在没有撇号的情况下搜索(尤其是在手机上)。例如,“A'trego”将被输入为“atrego”。它肯定会被全文索引遗漏,因为“A'trego”被认为是 2 个词“a”和“trego”

双字母遗漏

  • 带有双字母的单词经常被用户遗漏或拼错。例如,“Cerruti”可能拼错为“Cerutti”或“Cerruti”等。

潜在的解决方案:

  • 我可以使用 SOUNDEX() 但它主要是为英语设计的
  • 我可以使用 …

php mysql search full-text-search autocorrect

7
推荐指数
0
解决办法
851
查看次数

在 PHP 和 MYSQL 中对搜索完整标题及其单词进行单个查询?

我想根据整个标题名称和标题词搜索产品。可以LIKE使用UNION. 我的数据库title(charchar(550)) = Colorzone Men's Casual Wear Red Cotton Shirt不是全文—— PHP 和 MYSQL 的最佳搜索算法是什么?

但是我需要将搜索结果(第一Cotton Shirt记录,第二 Cotton记录和第三Shirt记录。不应显示混合的所有记录)作为单个查询

MYSQL 查询:例如:标题 =Cotton Shirt

SELECT title FROM zapstore_ecom_products WHERE title LIKE '%Cotton Shirt%' //Get Whole Title products.
UNION
SELECT title FROM zapstore_ecom_products WHERE title LIKE '%Cotton%' //Get list for first word Title products.
UNION
SELECT title FROM zapstore_ecom_products WHERE title LIKE '%Shirt%' //Get …
Run Code Online (Sandbox Code Playgroud)

php mysql search sql-like

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

标签 统计

full-text-search ×2

mysql ×2

php ×2

search ×2

sql-like ×2

autocorrect ×1

sql ×1