我的数据库中有
第一条:“u27979 u35797 u19968 u19979 u20013 u20013 u25991 u27979 u35797 u19968 u19979 u20013 u20013 u25991”第二条:“u27979 u35797”这么两条数据SQL语句:
SELECT search_index.content_type, search_index.content_id FROM search_index AS search_index WHERE MATCH(search_index.title, search_index.message, search_index.metadata) AGAINST ('+u27979 u35797 u19968' IN BOOLEAN MODE) ORDER BY search_index.item_date desc LIMIT 200结果两条都查询出来了~~请问怎么精确搜索??

解决方案 »

  1.   

    SELECT search_index.content_type, search_index.content_id FROM search_index AS search_index WHERE MATCH(search_index.title, search_index.message, search_index.metadata) AGAINST ('+u27979 u35797 +u19968' IN BOOLEAN MODE) ORDER BY search_index.item_date desc LIMIT 200
      

  2.   

    楼上正解,精确搜索,AGAINST ('+u27979 u35797 +u19968' IN BOOLEAN MODE)部分,关键字前面加 + 号,如果不包含某字,用 - 号,详见 http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html 
    看不懂,装一个google翻译工具栏。
      

  3.   

    这个我知道。问题是  我现在做了一个搜索比如说我有2个帖子:“请对您的言行负责,并遵守中华人民共和国有关法律法规,尊重网上道德。”
    “这里发言,表示您接受了CSDN社区的用户行为准则。”我搜索“言行”  结果下面的含有“发言” 字眼的帖子也不被搜索出来了 
      

  4.   

    中文的话,还是不要用mysql的全文检索,因为mysql的全文检索仅仅是建立在iso88591的编码上的推荐你用spinex+中文切词,这样才能检索的准确。