首頁  >  問答  >  主體

mysql - 两个全文索引的字段能否并在一起查询

字段:title,article,都是全文索引。

查询关键词:key1,key2,key3。

SELECT * FROM [表名] WHERE MATCH(article) AGAINST('key1,key2,key3');针对一个全文检索的字段是可行的

有没有这种:

SELECT * FROM [表名] WHERE MATCH(title,article) AGAINST('key1,key2,key3');

即同时在title+abstract中查找key1,key2,key3。但错误提示:Can't find FULLTEXT index matching the column list

有没有好办法?

PHP中文网PHP中文网2743 天前803

全部回覆(3)我來回復

  • PHPz

    PHPz2017-04-17 14:58:21

    alter table aws_articles add fulltext(title,abstract);就ok了,建立聯合索引,單獨建立是不行的

    回覆
    0
  • 阿神

    阿神2017-04-17 14:58:21

    MySQL哪個版本喲?全文搜尋支援中文了嗎?

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 14:58:21

    如果是英文字段,如@haixia9060 所說的,可新建索引後查詢

    1. 對三個欄位新建索引

      ALTER TABLE articles ADD FULLTEXT content_title_keywords_ndx (content,title,keywords);
      
    2. 查詢

      match(content,title,keywords) against ('cats' in boolean mode)
      

      MySQL預設只能處理英文/數字類型的;

    如果是是中文字段,應按流程(Document->Token->Term->Index)維護倒排索引;
    也有將MySQL字段指定Analyzer自動維護索引,實時同步到Solr中進行全文索引的做法;

    回覆
    0
  • 取消回覆