在文档在加入倒排索引之前,会对数据进行一系列的分析。基本分为以下几个步骤。
概述
*字符过滤---使用字符过滤器转变字符。
*文本切分为分词---将文本切分为单个或多个分词。
*分词过滤---使用分词过滤器转变每个分词。
*分词索引---将这些分词存储到索引中。
以上几个步骤可以参考下图:
字符过滤器可以将 特定的的字符序列转变为其他的字符序列,比如将 I love u 2 转换为I love you too.
文本切分为分词,实际上是利用分词器将文本切分为分词,英文可以表示为token,比如 share your experience with NoSql and big data technologies分解为share,your,experience,with,NoSql,and,big,data,technologies.在分词完成后并不是直接对token建立倒排索引,而是将每个分词运用分词过滤器,分词作为输入,输入到分词过滤器中,根据需要进行修改、添加或者是删除,最为常用的分词过滤器小写分词过滤器,这也是为了保证在搜索词条“nosql”的时候可以找回“NoSql”。另外还有其他两种常用的分词过滤器,一种是停用词分词过滤器,可以删除停用词。另一种是同义词分词过滤器,比如讲token"tools"作为“technologies”作为同义词进行添加。
在分词经历了零个或者是多个分词过滤器后,它们被发送到Lucene进行文档的索引。
对这些分析器的设置可以在索引创建时,可以在elasticsearch配置文件中进行配置,还可以在映射中指定某个字段的分析器。
在索引创建时添加分析器
curl -XPOST &