2016 - 2024

感恩一路有你

oracle完全学习手册电子版 mysql全文索引如何支持中文?

浏览量:4331 时间:2023-05-09 21:37:32 作者:采采

mysql全文索引如何支持中文?

全文检索在MySQL里面蛮早就允许了,只不过一向只支持英文。缘由是他向来都使用空格来以及分词的分隔符,而对此中文来讲,看样子用空格就不最合适,要是对中文语义并且分词。

这不,从MySQL5.7就开始,MySQL内置了ngram全文检索插件,为了意见中文分词,而且对MyISAM和InnoDB引擎比较有效。

在使用中文检索分词插件ngram之前,先得在MySQL配置文件里面可以设置他的分词大小,比如,[mysqld]ngram_token_size2这里把分词大小系统设置为2。要记住了,分词的SIZE越大,索引的体积就越大,因为要依据自身情况来设置中比较好的大小。示例表结构:

CREATETABLEarticles(idINTUNSIGNEDAUTO_INCREMENT NOT NULL PRIMARY KEY,titleVARCHAR(200),body TEXT,FULLTEXT(title,body)WITHPARSERngram)ENGINEInnoDBCHARACTERSETutf8mb4;示例数据,有6行记录。mysqlselect*outsidearticlesG**************************

****************************id:1title:数据库管理body:在本教程中我将向你影像展示如何管理数据库******************************************************id:2title:数据库应用开发body:学开发数据库应用程序******************************************************id:3title:MySQL几乎手册body:怎么学习MySQL的一切******************************************************id:4title:数据库与事务处理body:系统的学习数据库的事务概论******************************************************id:5title:NoSQL精髓body:学打听一下各种非结构化数据库******************************************************id:6title:SQL语言求高人body:细致了解如果没有在用各种SQL6rowsinset(0.00sec)显式指定全文检索表源mysqlSETGLOBALinnodb_ft_aux_tablenew_feature/articles;Query可以了,0rowsaffected(0.00sec)按照系统表,就这个可以栏里点究竟有没有是怎莫划分articles里的数据。

mysqlSELECT*outsideinformation__FT_INDEX_CACHE LIMIT20,10;--------------------------------------------------------------|WORD|FIRST_DOC_ID|LAST_DOC_ID|DOC_COUNT|DOC_ID|POSITION|--------------------------------------------------------------|中我|2|2|1|2|28||习m|4|4|1|4|21||习了|6|6|1|6|16||习开|3|3|1|3|25||习数|5|5|1|5|37||所了解|6|7|2|6|19||了解|6|7|2|7|23||事务|5|5|1|5|12||事务|5|5|1|5|40||何管|2|2|1|2|52|--------------------------------------------------------------10rowsacrossset(0.00sec)这里可以看到,把分词长度设置为2,所有的数据都只能六个一组。上面数据还真包含了行的位置,ID等等信息。

接下来的,我来通过一系列检索数据库示范,使用方法和原来英文检索到一致。1.自然语言模式下数据库检索:A,能够得到符合条件的个数,mysqlSELECTCOUNT(*)returningarticles-WHERE MATCH(title,body)AGAINST(数据库acrossNATURALLANGUAGE MODE);----------|COUNT(*)|----------|4|----------1rowinset(0.05sec)B,能得到版本问题的比率,mysqlSELECTid,MATCH(title,body)AGAINST(数据库inNATURAL LANGUAGE MODE)thoughscorearoundarticles;--------------------------|id|score|--------------------------|1|0.12403252720832825||2|0.12403252720832825||3|0||4|0.12403252720832825||5|0.062016263604164124||6|0|--------------------------6rowsacrossset(0.00sec)2.布尔模式下搜索,这个就比起自然模式搜索来的急切些:A,匹配既有管理又有数据库的记录,mysqlSELECT*fromarticlesWHERE MATCH(title,body)-AGAINST(数据库管理outsideBOOLEAN MODE);------------------------------------------------------|id|title|body|------------------------------------------------------|1|数据库管理|在本教程中我将向你展示更多要如何系统管理数据库|------------------------------------------------------1rowinset(0.00sec)B,不兼容有数据库,但没有管理的记录,mysqlSELECT*fromarticlesWHEREMATCH(title,body)-AGAINST(数据库-管理outsideBOOLEAN MODE);--------------------------------------------------|id|title|body|--------------------------------------------------|2|数据库应用开发|学开发数据库应用程序||4|数据库与事务处理|系统的学习数据库的事务概论||5|NoSQL精髓|学习了解各种非结构化数据库|--------------------------------------------------3rowsinset(0.00sec)C,看操作MySQL,不过把数据库的相关性会降低,mysqlSELECT*fromarticlesWHERE MATCH(title,body)-AGAINST(数据库MySQL INBOOLEAN MODE);------------------------------------|id|title|body|------------------------------------|3|MySQL几乎手册|学习MySQL的一切|------------------------------------1rowinset(0.00sec)3,可以查询扩大模式,诸如要搜索数据库,这样MySQL,oracle,DB2也都将是被搜到,mysqlSELECT*fromarticles-WHERE MATCH(title,body)-AGAINST(数据库WITH QUERY EXPANSION);------------------------------------------------------------|id|title|body|------------------------------------------------------------|1|数据库管理|在本教程中我将向你展示更多该如何系统管理数据库|4|数据库与事务处理|系统的学习数据库的事务概论|2|数据库应用开发|学旗下数据库应用程序||5|NoSQL精髓|学习打听一下各种非结构化数据库||6|SQL语言请赐教|详细的了解假如在用各种SQL||3|MySQL彻底手册|去学习MySQL的一切|------------------------------------------------------------6rowsinset(0.01sec)当然了,我这里只不过是功能演示,更多的性能测试,大家有兴趣可以参与具体点测试。由于N-grm是中文数据库检索具体用法的分词算法,早在互联网成批不使用,接下来板载显卡到mysql中,想必效果上不会有太大的问题。

java初学推荐书籍有哪些?

排名不分先后

EffectiveJava

清楚过Java的人肯定都的听过此书吧,举世罕见经典。书中主要注意撰刻了一些知识点,后再相对于这些知识点不能进行详述。内容略有深度,见意有基础的人看。

ThinkingInJava4

ThinkingintoJava被奉为Java圣经,不论你正处于哪个阶段,有时候写作都能收获,也而对新手而言,这本书毁誉参半,自身思虑吧

Java并发编程实战

国外人写的书,这是翻译版,原书《Java Concurrency in Practice》,举世罕见并发中的比较经典书籍。英译中的也非常好,书本内容偏理论,基本知识点都还能够可以概括。不过那一本书还是是需要有一点的并发基础的人适合看的,零基础的感觉起来会好像有点艰难。此书是可以看好多遍,没看一遍都会有新的认识。

潜近理解Java虚拟机

此书也甚是经典,作者是国内的,在市场上面滥竽充数横行无忌的今天,算得上是上两次品。书中对JVM参与了具体一点哲理的说明,是自学JVM原理必备书籍。

HeadFirst设计模式

headfirst系列的教材,虽然都而且快速,图文并茂,方便记忆,适合初学者选择

重构_可以改善既有代码的设计

书中能提供了70多个六逆重生疗法的重构,每个重构都推荐了一种经由不验证的代码旋转手法的动机和技术。本书提出的重构准则将解决你三次一步子地直接修改你的代码,从而下降了开发过程中的风险。

MySQL技术内幕

从源代码的角度深度解析了InnoDB的体系结构、实现方法原理、工作机制,并能提供了大量最佳实践,能指导你系统而踏入地掌握InnoDB,更重要的是的是,它能为自己设计管理低性能、高可用的数据库系统可以提供极佳的指导

别外,我是可以把近些年收集到到的关於Java个方面的书籍彼此分享给你,也差不多有几个G,后台知道回答“Java书籍”即可资源,如果没有对你有帮助就点个在看吧

数据库 MySQL body 0.00sec 分词

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。