elasticSearch精确索引和全文索引

精确索引顾名思义就是完全匹配的索引,包括大小写的区分,Foo 和 foo就不是相同的索引,使用sql语言可以很好的表示,精确匹配。
全文索引就比较微妙,我们在搜索Foo的时候,我们也希望可以搜索出foo,甚至fo。
elastic search为了达到全文搜索中希望达到的目的,在文档存储的时候会进行分析,建立倒排索引。
建立倒排索引的过程就是分析和标准话的过程。
分析和分析器
1、首先将文本分成适合索引的独立的词条。
2、将这些分出来的词条进行标准化,以提高索引程度。
1、字符过滤器:该过滤器是进行分词前的整理,比如将文本中的Html字符去掉,将 ‘&’ 转换为 ‘and’等。
2、分词器 :分词器按照分词器的特性,将文本按照特性的格式(比如简单分词器按照空格、横线等)将文本切分成多个词条。
3、token过滤器:将分词器拆分的词条进行标准化处理,转换单词小写,无用的词条的删除(a、an等),词条增加等。
通过上面的分词器、过滤器的操作文本就可以拆分成最终的词条,我们使用这些词条建立倒排索引就可以进行查询了。
下面是几种分词器:
1、标准分词器:这是elesticsearch默认的分词器,也是绝大数应用使用的分词器。他采用unicode标准进行文本的拆分,去掉绝大多是标点,最后将词条标准话小写。
2、简单分词器:将文本在不是字母的地方进行分词。最后将词条小写。
3、空格分词器:空格分词器在空格的地方进行分词。他不会词条的大小写处理。
4、语言分词器:特定语言的分词器,会根据语言进行文本的特殊处理。比如英文分词器会自动删除不必要的,对于相关性较小的分词。提取词干等。
什么时候使用分词器?
我们在文本录入的时候文本会被分词器进行拆分分词。建立倒排索引。
在我们进行查询的时候我们必须要保证我们的查询文本也是使用同一种分词器进行分词,这样我们才能保证我们搜索的词条格式和索引的词条格式是一致的。

你可能感兴趣的:(elasticSearch精确索引和全文索引)