8.2.4-elasticsearch内置分词器之fingerprint/language

本文介绍了Elasticsearch内置的fingerprint和language分词器。fingerprint分词器用于创建文档指纹,可用于去重。详细讨论了其分词效果、可配置参数和如何自定义相似的analyzer。而language分词器则根据特定语言进行分词,支持停用词的配置,举例展示了english和french类型的自定义analyzer。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ES默认提供了八种内置的analyzer,针对不同的场景可以使用不同的analyzer;

1、fingerprint analyzer

1.1、fingerprint类型及分词效果

fingerprint analyzer实现了fingerprinting算法(OpenRefine项目中使用);使用该analyzer场景下文本会被转为小写格式,经过规范化(normalize)处理之后移除扩展字符,然后再经过排序,删除重复数据组合为单个token;如果配置了停用词则停用词也将会被移除

//测试fingerprint analyzer默认分词效果
//请求参数
POST _analyze
{
   
  "analyzer": "fingerprint",
  "text": "Yes yes,is this déjàvu?"
}
//分词结果
{
   
  "tokens" : [
    {
   
      "token" : "dejavu is this yes",
      "start_offset" : 0,
      "end_offset" : 23,
      "type" : "fingerprint",
      "position" : 0
    }
  ]
}

以上句子通过分词之后得到的词(term)为:
[dejavu is this yes]

1.2、fingerprint类型可配置参数
序号 参数 参数说明
1 separator 连接多个词(term)的字符,默认为空格
2 max_output_size token允许的最大值,超过该值将直接被丢弃,默认值为255
3 stopwords 预定义的停用词,可以为0个或多个,例如_english_或数组类型值,默认值为_none_
4 stopwords_path 停用词文件路径
//自定义fingerprint analyzer并指定停用词
PUT custom_fingerprint_stop_index
{
   
  "settings": {
   
    "analysis": {
   
      "analyzer": {
   
        "fingerprint_analyzer":{
   
          "type":"fingerprint",
          "stopwords":"_english_"
        }
      }
    }
  }
}
//请求参数
POST custom_fingerprint_stop_index/_analyze
{
   
  "analyzer": "fingerprint_analyzer",
  "text": "Yes yes,is this déjàvu?"
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值