mysql - 我的网络托管公司说不可能更改此 MySql 配置...帮助

标签 mysql full-text-search

我使用 FULLTEXT 作为 mysql 文本字段中的索引。这样我以后就可以进行全文搜索。

全文字符数的默认值为 4。 这在 my.cnf 或 my.ini 文件中的这一行中进行了更改:

 [mysqld]
 ft_min_word_len=4

据我的网络托管公司 (one.com) 称,他们不知道其值(value),而且不可能更改它。我已经联系过他们好几次了,但他们就是这么说的。

所以我的问题是,任何网络托管商都允许更改此设置吗?如果是这样,怎么办?

或者,我应该考虑将全文更改为其他内容并以某种方式解决它吗?

谢谢

更新:

检查此链接:http://dev.mysql.com/doc/refman/5.1/en/fulltext-fine-tuning.html

如果我有一个搜索查询,并且字符串包含 2 个字母,则无法使用 ft_min_word_len=4 搜索 FUL​​LTEXT 索引,因为它将忽略字符数多于该值的所有字符串...

更新2

我希望能够在 mysql 表字段中搜索整个单词。当我使用“LIKE”语句时,如果我有一个“mercedes”字段值,并且如果我只写“merc”,它将给出“mercedes”字段作为结果...我只想匹配整个单词。

最佳答案

就您的网络托管服务商的具体情况而言,他们似乎只是不想更改该值。也许您的 MySQL 实例与同一机器上的其他帐户共享?

我花了大约 60 美元购买了自己的根服务器,这一切都是我自己的,整个该死的东西就是我的 Playground ;如果我愿意的话,我可以交换整个操作系统。不过,根据应用程序的不同,选择更便宜的计划是有意义的。有各种“虚拟托管”服务器托管服务,您可以在其中获得看似根服务器的东西,但实际上是虚拟机。你可以使用一切,即使是 root,但你无法获得整个盒子的资源。我可以每月花费大约 13 美元获得这样的计划,如果我货比三家的话可能会更少。

至于您减少 ft_whatzit 的具体要求:请考虑这可能是一个非常糟糕的主意。默认最小值为 4 是有原因的。有很多很多 2 字母单词对全文索引没有任何值(value),但对其大小有很大影响。本质上,由于阈值设置得如此之低,您的索引的搜索效率大致与原始文本一样(低),并且全文搜索的优势也随之消失。

做这种事情的明智方法是:当有人要求你查找一些单词时,只使用长度为 ft_min_word_len 或更长的单词进行搜索,忽略那些微小的单词;然后检索并浏览从中获得的全文,并丢弃任何不包含您的小词的内容。如果某人的搜索包含 3 个字符或更少的单词,出于效率原因,请告诉他们“不”,或者如果您想友善且他们坚持的话,请直接扫描每个文本的全文。

关于mysql - 我的网络托管公司说不可能更改此 MySql 配置...帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1896180/

相关文章:

search - SQLite全文搜索相关性排名

elasticsearch - 在Elasticsearch中使用ngram标记器按部分用户名或名称搜索用户的正确方法

Mysql: ORDER BY 连接表列

php - Unix 时间戳在 PHP 中给出不同的结果

mysql - sql插入查询与选择

sql - 在 SQL 中,我们可以使用 "Union"来合并两个表。 "Intersection"有哪些不同的方法?

elasticsearch - 在Elastic的_all字段中搜索并返回突出显示的结果

php - 并非所有数据都在显示

mysql - 使用 MySQL FULLTEXT 覆盖/复合索引

php - Sphinx PHP 搜索