oracle完全學習手冊電子版 mysql全文索引如何支持中文?
mysql全文索引如何支持中文?全文檢索在MySQL里面蠻早就允許了,只不過一向只支持英文。緣由是他向來都使用空格來以及分詞的分隔符,而對此中文來講,看樣子用空格就不最合適,要是對中文語義并且分詞。這
mysql全文索引如何支持中文?
全文檢索在MySQL里面蠻早就允許了,只不過一向只支持英文。緣由是他向來都使用空格來以及分詞的分隔符,而對此中文來講,看樣子用空格就不最合適,要是對中文語義并且分詞。
這不,從MySQL5.7就開始,MySQL內(nèi)置了ngram全文檢索插件,為了意見中文分詞,而且對MyISAM和InnoDB引擎比較有效。
在使用中文檢索分詞插件ngram之前,先得在MySQL配置文件里面可以設置他的分詞大小,比如,[mysqld]ngram_token_size2這里把分詞大小系統(tǒng)設置為2。要記住了,分詞的SIZE越大,索引的體積就越大,因為要依據(jù)自身情況來設置中比較好的大小。示例表結(jié)構(gòu):
CREATETABLEarticles(idINTUNSIGNEDAUTO_INCREMENT NOT NULL PRIMARY KEY,titleVARCHAR(200),body TEXT,FULLTEXT(title,body)WITHPARSERngram)ENGINEInnoDBCHARACTERSETutf8mb4;示例數(shù)據(jù),有6行記錄。mysqlselect*outsidearticlesG**************************
****************************id:1title:數(shù)據(jù)庫管理body:在本教程中我將向你影像展示如何管理數(shù)據(jù)庫******************************************************id:2title:數(shù)據(jù)庫應用開發(fā)body:學開發(fā)數(shù)據(jù)庫應用程序******************************************************id:3title:MySQL幾乎手冊body:怎么學習MySQL的一切******************************************************id:4title:數(shù)據(jù)庫與事務處理body:系統(tǒng)的學習數(shù)據(jù)庫的事務概論******************************************************id:5title:NoSQL精髓body:學打聽一下各種非結(jié)構(gòu)化數(shù)據(jù)庫******************************************************id:6title:SQL語言求高人body:細致了解如果沒有在用各種SQL6rowsinset(0.00sec)顯式指定全文檢索表源mysqlSETGLOBALinnodb_ft_aux_tablenew_feature/articles;Query可以了,0rowsaffected(0.00sec)按照系統(tǒng)表,就這個可以欄里點究竟有沒有是怎莫劃分articles里的數(shù)據(jù)。
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||習數(shù)|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,所有的數(shù)據(jù)都只能六個一組。上面數(shù)據(jù)還真包含了行的位置,ID等等信息。
接下來的,我來通過一系列檢索數(shù)據(jù)庫示范,使用方法和原來英文檢索到一致。1.自然語言模式下數(shù)據(jù)庫檢索:A,能夠得到符合條件的個數(shù),mysqlSELECTCOUNT(*)returningarticles-WHERE MATCH(title,body)AGAINST(數(shù)據(jù)庫acrossNATURALLANGUAGE MODE);----------|COUNT(*)|----------|4|----------1rowinset(0.05sec)B,能得到版本問題的比率,mysqlSELECTid,MATCH(title,body)AGAINST(數(shù)據(jù)庫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,匹配既有管理又有數(shù)據(jù)庫的記錄,mysqlSELECT*fromarticlesWHERE MATCH(title,body)-AGAINST(數(shù)據(jù)庫管理outsideBOOLEAN MODE);------------------------------------------------------|id|title|body|------------------------------------------------------|1|數(shù)據(jù)庫管理|在本教程中我將向你展示更多要如何系統(tǒng)管理數(shù)據(jù)庫|------------------------------------------------------1rowinset(0.00sec)B,不兼容有數(shù)據(jù)庫,但沒有管理的記錄,mysqlSELECT*fromarticlesWHEREMATCH(title,body)-AGAINST(數(shù)據(jù)庫-管理outsideBOOLEAN MODE);--------------------------------------------------|id|title|body|--------------------------------------------------|2|數(shù)據(jù)庫應用開發(fā)|學開發(fā)數(shù)據(jù)庫應用程序||4|數(shù)據(jù)庫與事務處理|系統(tǒng)的學習數(shù)據(jù)庫的事務概論||5|NoSQL精髓|學習了解各種非結(jié)構(gòu)化數(shù)據(jù)庫|--------------------------------------------------3rowsinset(0.00sec)C,看操作MySQL,不過把數(shù)據(jù)庫的相關(guān)性會降低,mysqlSELECT*fromarticlesWHERE MATCH(title,body)-AGAINST(數(shù)據(jù)庫MySQL INBOOLEAN MODE);------------------------------------|id|title|body|------------------------------------|3|MySQL幾乎手冊|學習MySQL的一切|------------------------------------1rowinset(0.00sec)3,可以查詢擴大模式,諸如要搜索數(shù)據(jù)庫,這樣MySQL,oracle,DB2也都將是被搜到,mysqlSELECT*fromarticles-WHERE MATCH(title,body)-AGAINST(數(shù)據(jù)庫WITH QUERY EXPANSION);------------------------------------------------------------|id|title|body|------------------------------------------------------------|1|數(shù)據(jù)庫管理|在本教程中我將向你展示更多該如何系統(tǒng)管理數(shù)據(jù)庫|4|數(shù)據(jù)庫與事務處理|系統(tǒng)的學習數(shù)據(jù)庫的事務概論|2|數(shù)據(jù)庫應用開發(fā)|學旗下數(shù)據(jù)庫應用程序||5|NoSQL精髓|學習打聽一下各種非結(jié)構(gòu)化數(shù)據(jù)庫||6|SQL語言請賜教|詳細的了解假如在用各種SQL||3|MySQL徹底手冊|去學習MySQL的一切|------------------------------------------------------------6rowsinset(0.01sec)當然了,我這里只不過是功能演示,更多的性能測試,大家有興趣可以參與具體點測試。由于N-grm是中文數(shù)據(jù)庫檢索具體用法的分詞算法,早在互聯(lián)網(wǎng)成批不使用,接下來板載顯卡到mysql中,想必效果上不會有太大的問題。
java初學推薦書籍有哪些?
排名不分先后
EffectiveJava
清楚過Java的人肯定都的聽過此書吧,舉世罕見經(jīng)典。書中主要注意撰刻了一些知識點,后再相對于這些知識點不能進行詳述。內(nèi)容略有深度,見意有基礎(chǔ)的人看。
ThinkingInJava4
ThinkingintoJava被奉為Java圣經(jīng),不論你正處于哪個階段,有時候?qū)懽鞫寄苁斋@,也而對新手而言,這本書毀譽參半,自身思慮吧
Java并發(fā)編程實戰(zhàn)
國外人寫的書,這是翻譯版,原書《Java Concurrency in Practice》,舉世罕見并發(fā)中的比較經(jīng)典書籍。英譯中的也非常好,書本內(nèi)容偏理論,基本知識點都還能夠可以概括。不過那一本書還是是需要有一點的并發(fā)基礎(chǔ)的人適合看的,零基礎(chǔ)的感覺起來會好像有點艱難。此書是可以看好多遍,沒看一遍都會有新的認識。
潛近理解Java虛擬機
此書也甚是經(jīng)典,作者是國內(nèi)的,在市場上面濫竽充數(shù)橫行無忌的今天,算得上是上兩次品。書中對JVM參與了具體一點哲理的說明,是自學JVM原理必備書籍。
HeadFirst設計模式
headfirst系列的教材,雖然都而且快速,圖文并茂,方便記憶,適合初學者選擇
重構(gòu)_可以改善既有代碼的設計
書中能提供了70多個六逆重生療法的重構(gòu),每個重構(gòu)都推薦了一種經(jīng)由不驗證的代碼旋轉(zhuǎn)手法的動機和技術(shù)。本書提出的重構(gòu)準則將解決你三次一步子地直接修改你的代碼,從而下降了開發(fā)過程中的風險。
MySQL技術(shù)內(nèi)幕
從源代碼的角度深度解析了InnoDB的體系結(jié)構(gòu)、實現(xiàn)方法原理、工作機制,并能提供了大量最佳實踐,能指導你系統(tǒng)而踏入地掌握InnoDB,更重要的是的是,它能為自己設計管理低性能、高可用的數(shù)據(jù)庫系統(tǒng)可以提供極佳的指導
別外,我是可以把近些年收集到到的關(guān)於Java個方面的書籍彼此分享給你,也差不多有幾個G,后臺知道回答“Java書籍”即可資源,如果沒有對你有幫助就點個在看吧