gpt4 book ai didi

mysql - 如何使 MySQL 全文索引忽略 url 字符串,尤其是扩展名

转载 作者:行者123 更新时间:2023-11-29 03:15:09 25 4
gpt4 key购买 nike

我在 MySQL 全文中索引包含 URL 的字符串...但我不希望结果中包含 URL。

举个例子,我搜索“PHP”或“HTML”,我得到像“Ibiza Angels Massage Company see funandfrolicks.php”这样的记录……充其量是享乐主义的干扰。

我看不到将正则表达式添加到停用词列表的示例。

我想到(但失败了)的另一件事是创建全文 SQL,并减少单词贡献...但是,在以下 SQL 中,相关值没有改变。

SELECT title, content,match(title,content) against('+PHP >".php"' IN BOOLEAN MODE)
FROM tb_feed
WHERE match(title,content) against('PHP >".php"' IN BOOLEAN MODE)
ORDER BY published DESC LIMIT 10;

另一种方法是带有附加条件的凌乱的 SQL 语句......

WHERE ... IF(content REGEXP '.php', content REGEXP '(^| )php', 1) ...

想法...最好的解决方案是什么?

最佳答案

如果结果的数量可以接受,您可以选择不显示匹配您想要忽略的单词。例如 .php 或 .html。这很容易搞砸,但会涉及使用比您需要更多的内存。

另一种解决方案是使用您要搜索的关键字创建另一个字段。使用此字段,您可以省略 url 和任何其他不需要的关键字。此解决方案的写入时间很短,但会占用额外的硬盘空间。

更好的解决方案是创建另一个名为关键字(或类似名称)的表。当用户提交搜索查询时,将搜索关键字表以查找指定的关键字。上传或检索内容时,通过拆分输入数据来填充关键字表。

最后一个选项的优点可能是速度快,数据紧凑,因为关键字仅存储一次,索引指向主要内容记录。如果您愿意,它可以进行巧妙的搜索。

关于mysql - 如何使 MySQL 全文索引忽略 url 字符串,尤其是扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1450887/

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