Analyzer 解析器
ElasticSearch    2018-09-01 00:39:54    1    0    0
cqc   ElasticSearch

解析过程:

  1. 将一段文本拆分成一个个单词并将单词应用在倒排索引中
  2. 然后将这些单词进行标准化(如将所有字母转成小写)来提供可查性


解析器组成:

解析器实际是一个包装对象,其包含如下三个功能:
  1.  character filters 文本过滤器。首先, 一段文本将按序传递给任意个的文本过滤器,它的工作就是在对文本进行分割之前进行调整,如将文本中的html元素删除等
  2. Tokenizer 分词器。将文本分割成一个个的单词
  3. Token filters 单词过滤器。最后,将分割后的单词按序传递给任意个的单词过滤器,通过各种类型的单词过滤器进单词进行调整(转成小写字母)、删除(删除一些定语,如a、an、the)、添加一些同义词关联等


ES内建的解析器
如以下一段文本:Set the shape to semi-transparent by calling set_trans(5),通过以下各解析器解析后的结果
  1. Standard analyzer 标准解析器。这是ES默认的解析器,它根据单词边界进行分割,去除符号,最后将字母转成小写。如上文本解析后为:set, the, shape, to, semi, transparent, by, calling, set_trans, 5
  2. Simple analyzer 简单解析器。不是字母的都将删除,最后将字母转成小写。如上文本解析后为: set, the, shape, to, semi, transparent, by, calling, set, trans
  3. Whitespace analyzer 空格解析器。顾名思义,完全按照空格进行分割,也不对字母转换大小写。如上文本解析后为:Set, the, shape, to, semi-transparent, by, calling, set_trans(5)
  4. Language analyzer 语言解析器。目前支持不少的语言解析器(无汉语),在此可查到https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-lang-analyzer.html。根据每种语言的特点进行分割。用english解析器后,以上文本将会解析成:set, shape, semi, transpar, call, set_tran, 5
 
测试解析器
GET /_analyze
{
"analyzer": "standard",
"text": "Text to analyze"}

 

上一篇: Mapping 映射

下一篇: Shard 分片

文档导航