首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我需要找到两个彼此不接近的单词,那么MySQL如何搜索全文

如果我需要找到两个彼此不接近的单词,那么MySQL如何搜索全文
EN

Stack Overflow用户
提问于 2015-04-22 07:23:52
回答 3查看 48关注 0票数 1

如果我用MySQL 全文搜索来寻找术语“ fiesta ",而我正在搜索的领域如下:"cars ford engines ”。

MySQL会给我一个结果吗?我不希望它只找到“福特嘉年华”,如果这些词在我正在搜索的领域中相邻,例如“cars ford fiesta engines”。

如果MySQL在默认情况下不会给出结果,我是否可以将其配置为这样做(如果这些单词出现在我正在搜索的文本中的任何地方),或者还有其他方法来实现这一点?

谢谢

EN

回答 3

Stack Overflow用户

发布于 2015-04-22 07:31:03

使用REGEXP

代码语言:javascript
复制
SELECT * FROM `table` where `field` REGEXP 'ford.*fiesta' = 1

它将返回那些记录,这些记录的field字段包含包含单词fordfiesta的字符串,在它们之间有任何字符串。REGEXP在匹配时返回1,如果不匹配则返回0。

票数 2
EN

Stack Overflow用户

发布于 2015-04-22 07:26:10

使用like,然后添加通配符参数。

正因如此

代码语言:javascript
复制
SELECT * FROM table WHERE field LIKE '%ford fiesta%'
票数 0
EN

Stack Overflow用户

发布于 2015-04-22 08:19:48

也许完全不相关,但当我开始创建一个更复杂的搜索引擎时,我开始使用一个特殊的数据库。

看看elasticSearch,一旦您启动并运行了它,那么指定像您这样的需求是非常简单的。

特别是来自ElasticSearch的ElasticSearch将满足您的需要。您甚至可以指定要在哪些字段上运行查询。

正如我说过的,一旦你想从简单的搜索转到高级搜索,MYSQL就不是做这个工作的合适人选。

干杯

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

https://stackoverflow.com/questions/29790517

复制
相关文章

相似问题

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