gpt4 book ai didi

MySQL bool 全文搜索未按预期工作

转载 作者:行者123 更新时间:2023-11-29 18:38:34 24 4
gpt4 key购买 nike

我有一个化学物质表,称为物质。我正在尝试利用 MySQL 的 full text natural language 来实现搜索工具能力。

我已运行以下命令,以允许此类命令在 name 列上的 substances 表上运行:

ALTER TABLE substances ADD FULLTEXT(`name`);

如果我运行以下命令,它会按预期提供包含单词“Chromium”或“三氧化物”的任何结果:

SELECT * FROM substances WHERE MATCH (`name`) AGAINST ('Chromium Trioxide' IN NATURAL LANGUAGE MODE);

但是我想要做的是仅查找包含“三氧化 Chrome ”的行,即使它们之间有字符(例如“三氧化 Chrome (VI)”)。我的理解是,在每个单词之前使用 + 可以做到这一点:

SELECT * FROM substances WHERE MATCH (`name`) AGAINST ('+Chromium +Trioxide' IN NATURAL LANGUAGE MODE);

但它给我的结果与原始查询相同 - 即任何包含“Chromium”或“三氧化物”但不同时包含两者的结果。

我哪里出错了?我已经阅读了 bool 全文搜索 ( https://dev.mysql.com/doc/refman/5.7/en/fulltext-boolean.html ),但我发现的唯一信息是在每个关键字之前包含 +

MySQL版本是5.7.9,表是MyISAM。

最佳答案

我不知道如何使用mysql bool 全文搜索或自然全文搜索来解决它,

但我认为可以使用 REGEX 来完成(请参阅 https://dev.mysql.com/doc/refman/5.7/en/regexp.html )

SELECT * FROM substances WHERE `name` REGEXP 'Chromium .* Trioxide'

关于MySQL bool 全文搜索未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45077451/

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