繁体   English   中英

PHP的MySQL搜索关键字的描述

[英]php mysql search description for keywords

我正在创建一个网站,用户可以上传图像并为其编写描述。 我想让用户能够根据他们想要检索的图像来搜索描述。

最初,我决定转换用户在将图像上传到关键字时输入的描述,并将关键字链接到图像,在这种情况下,当用户稍后在搜索中对描述进行搜索时,他们输入的描述将转换为关键字,将以某种方式为这些关键字生成同义词,所有这些关键字都将针对数据库中的关键字进行搜索。

最近,我读到了有关mysql全文搜索的信息。 我创建了一个包含描述和图像ID的表,并使用全文本搜索功能尝试了几次查询,由于字长限制和停用词,大多数搜索似乎均未返回任何结果。 这是我的测试查询:

SELECT * FROM descriptions WHERE MATCH (description) AGAINST ('same' IN BOOLEAN MODE);

表中有一个条目,其描述包含关键字“ same”,但未返回任何结果。

我的问题是,在说明表上使用'LIKE%keywords%'还是在说明表上使用FTS还是坚持使用关键字表方法更好?

使用LIKE,您可以采用三种方法。

1)如果包含所有单词的顺序相同(关键字:一架飞机)

SELECT * FROM descriptions WHERE description LIKE('%One airplane%');

2)如果包含所有单词,但顺序无关紧要

SELECT * FROM descriptions WHERE description LIKE('%One%') AND description LIKE('% airplane%');

3)如果包含一些单词

SELECT * FROM descriptions WHERE description LIKE('%One%') OR description LIKE('% airplane%');

现在,您可以选择对搜索的严格程度。

如果要使用第二个或第三个实现,则将使用“ space”将关键字与字符串分开,并为数组中的每个项目添加一个like。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM