首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL中的全文搜索-多个搜索词,部分搜索词,带撇号,没有撇号

MySQL中的全文搜索-多个搜索词,部分搜索词,带撇号,没有撇号
EN

Stack Overflow用户
提问于 2018-09-13 09:45:29
回答 1查看 60关注 0票数 1

我对全文搜索有一个问题,允许用户输入:-

  • 多搜索词
  • 多部分项
  • 带撇号的搜索词
  • 没有撇号的搜索词

除了一个实例之外,我还让搜索为所有实例工作--当用户在一个部分搜索词或完整搜索项中输入一个没有撇号的搜索项时。

在数据库中,有毕晓普的斯塔福德(带撇号)和主教斯塔福德(没有撇号)保存的数据,我需要在搜索名称时获取所有记录。

毕晓普的斯塔福德酒店套房

如果用户在毕晓普的S,酒店,套房或任何版本的毕晓普的斯塔福德包含撇号-搜索将工作

代码语言:javascript
复制
USE `waf-bit`;
SELECT townDetails FROM town_overview
WHERE MATCH(townDetails) against('+Bishop\'s S* +hotel +suite' IN BOOLEAN MODE) 
OR MATCH(townDetails) against('+Bishops S* +hotel +suite' IN BOOLEAN MODE) 
ORDER BY townDetails ASC LIMIT 50 OFFSET 0

但是,如果Bishops酒店、套房--或者没有撇号的任何版本的Bishops -的用户键不起作用,那么它将找不到带撇号的毕晓普·斯塔福德的版本。

代码语言:javascript
复制
USE `waf-bit`;
SELECT townDetails FROM town_overview
WHERE MATCH(townDetails) against('+Bishops S* +hotel +suite' IN BOOLEAN MODE) 
OR MATCH(townDetails) against('+Bishops S* +hotel +suite' IN BOOLEAN MODE) 
ORDER BY townDetails ASC LIMIT 50 OFFSET 0

我不想使用LIKE,因为dataset太大了,我可以设置一个交叉引用表,它可以指示哪些地名包含撇号,但是如果我能够在搜索本身中修复这一点,这是首选选项。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2018-09-13 11:31:44

我的建议是对这两个查询使用UNION操作。UNION还将自动删除重复项(应该使用UNION ALL查看副本)

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

https://stackoverflow.com/questions/52311016

复制
相关文章

相似问题

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