elasticsearch权威指南 学习30

elasticsearch权威指南-- getting start 第十章 Index Management(4)

Configuring Analyzers

index setting中第三重要的部分就是analysis部分,在这部分你可以自己指定内置的analyzers或者指定自定义的索引。

在Analysis and Analyzers部分,我们曾经介绍过一些内建的analyzers,这些analyzers可以将全文(full-text)索引转换为倒排索引,使其可以被检索到。

standard analyzer是Elasticsearch用于全文(full-text)字段默认的analyzer,它对于西文来讲是非常好的选择。它包含以下特性:

standard tokenizer可以按单词来分割输入的文本。

standard token filter可以对分出的单词进行整理。

lowercase token filter 它将所有的tokens转换为小写。

stop token filter 可以删除停止词,以及一些与检索无关的常用词,比如像:a,the,and,is之类的。

默认情况下,停止词(stopwords)是关闭的,你可以通过在使用standard analyzer的时候设置stopwords参数时来使其生效。也可以通过指定使用预先定义的停止词来设置停止词。

如下的例子:我们创建了一个新的叫做es_std的analyzer,在这里我们预定义了Spanish stopwords。

PUT /spanish_docs
{
     “settings”: {
          “analysis”: {
               “analyzer”: {
                    “es_std”: {
                         “type”: “standard”,
                         “stopwords”: “_spanish_”
                    }
               }
           }
       }
}

这个es_std analyzer不是全局的,它只在设定了spanish_docs的index中生效。我们可以用analyze API来测试效果。

GET /spanish_docs/_analyze?analyzer=es_std
El veloz zorro marrón

我们可以看到El已经被移出了:

{
     “tokens” : [
          { "token" : "veloz", "position" : 2 },
          { "token" : "zorro", "position" : 3 },
          { "token" : "marrón", "position" : 4 }
     ]
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>