【问题标题】:Mysql Full Text search not working for all fieldsMysql全文搜索不适用于所有字段
【发布时间】:2014-03-23 17:17:06
【问题描述】:

我有一张大桌子。我有全文索引:

名称(公司名称) Name_dba(经营业务的公司名称) phy_city(物理城市) phy_state(物理状态) 邮件城市 邮件状态

我允许用户简单地输入公司名称、城市等进行搜索。我的代码采用术语 sing $term 并删除单词之间的任何空格并将其替换为“+”。然后我执行以下查询:

SELECT SQL_CALC_FOUND_ROWS * FROM fmcsa_census1
 WHERE MATCH(dot_num, name, name_dba, iccdocket1, icc1,phy_st, phy_city, mail_city, mail_st) AGAINST (('$term') IN BOOLEAN MODE)

这在搜索城市、州时可以正常工作,但在公司名称上永远不会正确匹配。即使我输入的公司名称与我在数据库中的名称完全相同,它也不会在结果中返回或返回。两个名称字段都是 varchar(120)。

人们很可能会按名称搜索任何建议。

谢谢!

【问题讨论】:

  • 你试过在mysql控制台还是只在php?
  • 你确定用 + 替换空格不是问题吗?

标签: mysql full-text-search


【解决方案1】:

我认为这是因为您伪造 this$term 变量的方式。也许您在城市名称前加了一个 fot。

【讨论】:

    猜你喜欢
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多