ElasticSearch Mapping学习—Mapping中的分词器使用方式

analyzer

定义文本字段分词器,默认对索引和查询都是有效的。

假设不使用任何分词器,创建索引并添加字段

PUT blog

PUT blog/_doc/1
{
  "title": "定义文本字段分词器,默认对索引和查询都是有效的。"
}

查看词条向量(term vectors),即分词结果:

GET /blog/_termvectors/1
{
  "fields": ["title"]
}

发现默认是按照单个汉字分词的。

所以,我们要根据实际情况,配置合适的分词器:

PUT blog
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "analyzer": "ik_smart"
      }
    }
  }
}

search_analyzer

查询时候的分词器,默认情况下,索引阶段和查询阶段都使用analyzer配置的分词器,如果配置了search_analyzer,则在查询时使用search_analyzer指定的分词器。如果analyzer也没配置,则使用ES默认的分词器。

normalizer

normalizer参数用于解析前(索引或者查询阶段)的标准化配置。配置如下:

PUT blog
{
  "settings": {
    "analysis": {
      "normalizer": {
        "my_normalizer": {
          "type": "custom",
          "filter": ["lowercase"]
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "author": {
        "type": "keyword",
        "normalizer": "my_normalizer"
      }
    }
  }
}

上面的例子定义了一个normalizer,用于将所有文本都转化为小写字母。定义的normalizer可以在mappings中使用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值