IK分词原理

IKAnalyzer是一个开源的,基于Java语言开发的轻量级的中文分词语言包,它是以Lucene为应用主体,结合词典分词和文法分析算法的中文词组组件。从3.0版本开始,IK发展为面向java的公用分词组件,独立Lucene项目,同时提供了对Lucene的默认优化实现。 以下这篇博客是我在通读IK分词代码后对IK分词的理解,如果有什么地方出现纰漏请大家指正。 回到最初 如果让我自己在看IK分词之前自己写一个分词器,那我会怎么做? 如果我会想到的是:比如对"周末有欧冠决赛"做分词处理,人为的分词是:“周末|有|欧冠|决赛”,那为什么会出现这样的分词效果,首先必须有一个词典,词典中可以标记出“ »

MyISAM与InnoDB的索引结构

Mysql索引结构 Mysql非常普遍的使用在互联网公司的大大小小的业务上,而这些业务的许多性能问题都数据的查询。如果进行高质量的SQL查询,如何有效的创建索引,随用索引成为了很多复杂业务的重点关键问题。由于索引是在存储引擎层面实现的,而不是服务器层,所以索引并非标准化的,每种存储引擎的索引的工作方式都略有不同。本文将主要围绕我们最常用的MyISAM和InnoDB进行索引的介绍。 1 存储引擎: 1.1 MyISAM: MyISAM的布局其实非常简单,它是按照插入顺序在磁盘是存储数据。如下: 因为每一行的大小固定,索引MyISAM可以很容易从标的开始位置找到某一行的位置。其Primary Key 的结构大致如下: 而如果在其它的列上创建索引,其索引的形式与Primary »