用户在文本编辑器中,输入文字。如何使用 sql 查询那段文字中是否存在关键字?
认证高级PHP讲师
你所说的应该属于全文检索。MYSQL只有MYISAM支持全文检索,并且不支持中文。有其他第三方的方法搜索引擎加MYSQL配合可以达到高性能全文检索方案。具体可以参考:http://wenku.baidu.com/link?u...
可否 讲需求描述细致一些? 你想做一个什么样的功能需求?
你说的是全文索引,Mysql5.7 中InnoDB支持全文索引(其它版本不知道),并且内置了ngram全文检索插件,用来支持中文分词。
创建表时 :FULLTEXT (字段1,字段2) WITH PARSER ngram查询时:
FULLTEXT (字段1,字段2) WITH PARSER ngram
SELECT COUNT(*) FROM table1 WHERE MATCH (字段1,字段2) AGAINST ('关键词');
更详细的可以看下官网
额,可以用做elasticsearch做搜索,当然这个不属于mysql了。mysql本身就是用来做存储的,复杂的搜索分词什么的,还是用专业的吧,很多电商也都用这个。
elasticsearch
你所说的应该属于全文检索。
MYSQL只有MYISAM支持全文检索,并且不支持中文。有其他第三方的方法搜索引擎加MYSQL配合可以达到高性能全文检索方案。
具体可以参考:
http://wenku.baidu.com/link?u...
可否 讲需求描述细致一些? 你想做一个什么样的功能需求?
你说的是全文索引,Mysql5.7 中InnoDB支持全文索引(其它版本不知道),并且内置了ngram全文检索插件,用来支持中文分词。
创建表时 :
FULLTEXT (字段1,字段2) WITH PARSER ngram
查询时:
更详细的可以看下官网
额,可以用做
elasticsearch
做搜索,当然这个不属于mysql了。mysql本身就是用来做存储的,复杂的搜索分词什么的,还是用专业的吧,很多电商也都用这个。