gpt4 book ai didi

php - MySQL MATCH AGAINST 与 JOIN

转载 作者:行者123 更新时间:2023-11-30 22:38:26 30 4
gpt4 key购买 nike

我正在尝试构建一个使用图像标签的相关图像部分。

我的数据库结构非常简单:

table: images          table: image2tag      table: tags     
|image_id|image_path| |t2i_id|image_id|tag_id| |tag_id|tag_name|

我想做的是根据两者中的标签找到与当前图像具有高度相关性的图像。通过浏览其他帖子,我认为我可能需要使用 MATCH AGASINT,比较的值是数字 ID,但根据 dev.mysql.com MATCH AGAINST 用于比较文本字符串,所以我很困惑。

我在 stackoverflow 上找到了示例,但没有一个涉及连接,有人可以帮我解决这个问题。到目前为止我尝试了什么:

$getRelated = $conn -> prepare("SELECT *, 
MATCH(it.image_tag_id) AGAINST (?) AS score
FROM images i
LEFT JOIN image2tag i2t
ON i.image_id = i2t.i2t_image_id
LEFT JOIN image_tags it
ON i2t.i2t_tag_id = it.image_tag_id
WHERE MATCH(it.image_tag_id) AGAINST (?)
ORDER BY score DESC LIMIT 5");
$getRelated -> bindParam(1, $tags, PDO::PARAM_STR);
$getRelated -> bindParam(2, $tags, PDO::PARAM_STR);
$getRelated -> execute();

我想我的做法是错误的,如有任何帮助,我们将不胜感激。

最佳答案

很久以前我用过这个。

您需要以下内容:

  • myisam
  • char、varchar 或 text 数据类型
  • 全文索引

数字是不可能的。参见官方文档:https://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

也许你可以拆分逻辑:

  • 在您的文本图像标签中进行全文搜索
  • 使用上面的图像标签 id 进行连接

关于php - MySQL MATCH AGAINST 与 JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31758097/

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