【问题标题】:Exact Match search from Mysql FullText Search来自 Mysql 全文搜索的精确匹配搜索
【发布时间】:2018-05-06 15:45:52
【问题描述】:

通过使用全文搜索不搜索多个单词的确切值。 这是查询

  SELECT * FROM csv WHERE match(data) against('"TMN PANTAI"' IN BOOLEAN MODE) 

显示结果,但搜索“TMN”和“PANTAI”和“TMN PANTAI”

如何使用“TMN PANTAI”搜索精确匹配?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    FULL-TEXT 不考虑空间,所以你不能使用它。

    如果您仍想利用全文索引,您可以通过使用match against query 进行过滤来缩短结果集,并添加一个额外的LIKE 条件。这将比在整个表上使用 LIKE 查询更有效,因为 LIKE 现在要过滤的记录更少了。

    SELECT * FROM csv WHERE match(data) against('+TMN +PANTAI' IN BOOLEAN MODE) 
    AND data like '%TMN PANTAI%'
    

    【讨论】:

    • 它从字段中搜索文本。使用 %TMN PANTAI% 之类的替换
    • @ManmeetKhurana 更新了答案。试试这个。
    • 它不工作已经尝试过,它通过使用反对('+TMN +PANTAI' IN BOOLEAN MODE)给出结果“TMN”或“PANTAI”。但我想匹配结果“TMN班台"
    • 尝试答案中的第二条建议
    • ,它使用与“TMN”相同的单个字符串作为“PANTAI”进行搜索。他们是否有任何关于精确匹配的解决方案?根据“TMN PANTAI”给出结果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2013-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    相关资源
    最近更新 更多