elasticsearch从入门到入门系列(二)---快速入门C

1.分词器的介绍和使用

  • 什么是分词器
    • 将用户输入的一段文本,按照一定逻辑,拆分为多个词语的一种工具
  • 常见的内置分词器
    • standard analyzer:标准分析器器是默认分词器器,如果未指定,则使⽤用该分词器器。
请求:
    POST localhost:9200/_analyze

     
    {
        "analyzer": "standard",
        "text": "The best 3-points shooter is Curry!"
    }    
  • simple analyzer:simple 分析器器当它遇到只要不不是字⺟母的字符,就将⽂文本解析成term,⽽而且所有的term都是

⼩小写的。

请求:
    POST localhost:9200/_analyze

 
    {
        "analyzer": "simple",
        "text": "The best 3-points shooter is Curry!"
    }

 

  • whitespace analyzer:whitespace 分析器器,当它遇到空⽩白字符时,就将⽂文本解析成terms
  • stop analyzer:stop 分析器器 和 simple 分析器器很像,唯⼀一不不同的是,stop 分析器器增加了了对删除停⽌止词的⽀支 持,默认使⽤用了了english停⽌止词,stopwords 预定义的停⽌止词列列表,⽐比如 (the,a,an,this,of,at)等等
  • language analyzer:(特定的语⾔言的分词器器,⽐比如说,english,英语分词器器),内置语⾔言:arabic, armenian, basque, bengali, brazilian, bulgarian, catalan, cjk, czech, danish, dutch, english, finnish, french, galician, german, greek, hindi, hungarian, indonesian, irish, italian, latvian, lithuanian, norwegian, persian, portuguese, romanian, russian, sorani, spanish, swedish, turkish, thai
  • pattern analyzer:⽤用正则表达式来将⽂文本分割成terms,默认的正则表达式是\W+(⾮非单词字符)
  • 选择分词器器

2.常见中文分词器的使用

  • 常见分词器
    • smartCN ⼀一个简单的中⽂文或中英⽂文混合⽂文本的分词器器
    • IK分词器器 更更智能更更友好的中⽂文分词器器
    • smartCN
      • 安装:sh elasticsearch-plugin install analysis-smartcn

      • 检验:

        • 安装后重启

        • 请求:
              POST localhost:9200/_analyze
          
               
              {
                  "analyzer": "smartcn", "text": "⽕火箭明年年总冠军"
              }

           

3.常见的字段类型

  • 核心数据类型
    • 字符串:
      • text:⽤用于全⽂文索引,该类型的字段将通过分词器器进⾏行行分词
      • keyword:不不分词,只能搜索该字段的完整的值
    • 数值型:
      • long, integer, short, byte, double, float, half_float, scaled_float
    • 布尔:
      • boolean
    • 二进制
      • binary:该类型的字段把值当做经过 base64 编码的字符串串,默认不不存储,且不不可搜索
    • 范围类型:
      • 范围类型表示值是⼀一个范围,⽽而不不是⼀一个具体的值
      • integer_range, float_range, long_range, double_range, date_range
        • 譬如 age 的类型是 integer_range,那么值可以是 {"gte" : 20, "lte" : 40};搜索 "term" : {"age": 21} 可以搜索该值
    • 日期:

      ​​​​​​​​​​​​​​​​​​​​date:
      • 格式:"2022-01-01" "2022/01/01 12:10:30" 这种字符串串格式
        • format默认为:strict_date_optional_time||epoch_millis
        • 由于Json没有date类型,所以es通过识别字符串串是否符合format定义的格式来判断是否
        • 为date类型
    • 复杂数据类型
    • 数组数据类型Array
      • 同⼀一个数组只能存同类型的数据,不不能混存,譬如 [ 10, "some string" ] 是错误的
      • Object对象数组 [ { "name": "Louis", "age": 18 }, { "name": "Daniel", "age": 17 }]
      • 整数数组 [ 1, 2 ]
      • 字符串串数组 [ "one", "two" ]
        • ES中没有专⻔门的数组类型, 直接使⽤用[]定义即可,数组中所有的值必须是同⼀一种数据类 型, 不不⽀支持混合数据类型的数组:
      • 对象类型Object
        • 对象类型可能有内部对象
    • 专用数据类型
    • IP类型
      • IP类型的字段⽤用于存储IPv4或IPv6的地址, 本质上是⼀一个⻓长整型字段.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值