首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php mysql搜索关键字的描述

php mysql搜索关键字的描述
EN

Stack Overflow用户
提问于 2015-01-09 12:09:52
回答 1查看 544关注 0票数 0

我正在创建一个网站,用户上传图片,并为它写一个描述。我想让用户能够搜索他们想要检索的图像的描述。

首先,我决定将用户在上传图像时输入的描述转换为关键字,并将关键字链接到图像,在这种情况下,当用户在其输入的描述中执行描述搜索时,将被转换为关键字,并为关键字生成同义词,这些关键字将对DB中的关键字进行所有搜索。

最近我读到了mysql全文搜索。我创建了一个包含描述和图像ids的表,并使用全文搜索功能尝试了几个查询,由于字长限制和停止词,大多数搜索似乎都没有返回结果。下面是我的测试查询:

代码语言:javascript
复制
SELECT * FROM descriptions WHERE MATCH (description) AGAINST ('same' IN BOOLEAN MODE);

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

我的问题是,在描述表中使用'LIKE %关键字%‘还是在描述表上使用FTS更好,还是坚持使用关键字表方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-09 12:21:56

你有三种方法。

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

代码语言:javascript
复制
SELECT * FROM descriptions WHERE description LIKE('%One airplane%');

2)如果它包含了所有的单词,但这个顺序并不重要

代码语言:javascript
复制
SELECT * FROM descriptions WHERE description LIKE('%One%') AND description LIKE('% airplane%');

3)如果它包含了一些词语

代码语言:javascript
复制
SELECT * FROM descriptions WHERE description LIKE('%One%') OR description LIKE('% airplane%');

现在,您可以选择对搜索有多严格。

如果您想使用第二个或第三个实现,您将用“空格”将字符串与关键字拆分,并为数组中的每个项添加一个like。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27860263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档