gpt4 book ai didi

python - MySQL查询匹配相似的单词/句子

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

我的 MySQL 数据库中有一个表,其结构如下:

CREATE TABLE `papers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(1000) COLLATE utf8_bin DEFAULT NULL,
`booktitle` varchar(300) COLLATE utf8_bin DEFAULT NULL,
`journal` varchar(300) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `title_fulltext` (`title`),
FULLTEXT KEY `booktitle_fulltext` (`booktitle`),
FULLTEXT KEY `journal_fulltext` (`journal`)
) ENGINE=MyISAM AUTO_INCREMENT=1601769 DEFAULT CHARSET=utf8 COLLATE=utf8_bin

现在我知道在列标题中,在数百万行中的某处,有一行包含字符串

nFOIL: Integrating Naïve Bayes and FOIL.

我要找

my_string = "nFOIL: integrating Naïve Bayes and FOIL"

并找到正确的行。您会发现它必须是不区分大小写的搜索,并且查询中缺少末尾的点。我该如何实现这个?

我试过了

SELECT id FROM papers WHERE UPPER(title) LIKE %s

并在 python 中将 my_string 转换为大写,并在 my_string 末尾添加“%”,但这并不是处理此问题的好方法。它也不起作用。 =)

感谢您的建议!

最佳答案

我看到你添加了 FULLTEXT 索引,虽然你已经了解 MySQL 的 MATCH AGAINST 语法。

你应该尝试

SELECT id FROM papers 
WHERE MATCH (title,booktitle,journal) AGAINST ('nFOIL: integrating Naïve Bayes and FOIL' IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION);

关于python - MySQL查询匹配相似的单词/句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5370685/

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