自定义分析器
虽然Elasticsearch内置了一系列的分析器,但是真正的强大之处在于定制你自己的分析器。你可以通过在配置文件中组合字符过滤器,分词器和表征过滤器,来满足特定数据的需求。
分析器 是三个顺序执行的组件的结合(字符过滤器,分词器,表征过滤器)。
字符过滤器
字符过滤器是让字符串在被分词前变得更加“整洁”。例如,如果我们的文 本是HTML格式,它可能会包含一些我们不想搜索的HTML标签,诸如<p>或 <div>。
我们可以使用html_strip 字符过滤器来删除所有的HTML标签,并且将 HTML实体转换成对应的Unicode字符,比如将Á;转成A。
一个分析器可能包含零个到多个字符过滤器
分词器
一个分析器 必须 包含一个分词器。分词器将字符串分割成单独的词 (terms)或表征(tokens)。standard分析器使用standard 分词器将 字符串分割成单独的字词,删除大部分标点符号,但是现存的其他分词器会 有不同的行为特征。
例如,keword分词器输出和它接收到的相同的字符串,不做任何分词处 理。【whitespce 分词器】 只通过空格来分割文本。【pattern分词 器】可以通过正则表达式来分割 文本。
表征过滤器
分词结果的表征流会根据各自的情况,传递给特定的表征过滤器。但是 Elasticsearch中有更多