zoukankan      html  css  js  c++  java
  • term&match得区别 text&keyword区别

    Text 概念

    Text 数据类型被用来索引长文本,比如说电子邮件的主体部分或者一款产品的介绍。这些文本会被分析,在建立索引前会将这些文本进行分词,转化为词的组合,建立索引。允许 ES来检索这些词语。text 数据类型不能用来排序和聚合。

    Keyword 概念

    Keyword 数据类型用来建立电子邮箱地址、姓名、邮政编码和标签等数据,不需要进行分词。可以被用来检索过滤、排序和聚合。keyword 类型字段只能用本身来进行检索。

    注意:如果不像以上通过mapping 配置索引时,遇到字符串类型时候的字端,系统会默认为“text”类型。检索的时候对字符串进行分析。所以要想只通过字段本身来进行检索,还是需要按照上面把该字段改为“keyword”类型。

    1. term&match 区别
    term: 精确查询,对查询的值不分词,直接进倒排索引去匹配。
    match; 模糊查询,对查询的值分词,对分词的结果一一进入倒排索引去匹配
    2. text&keyword 区别
    text: 在写入时,对写入的值进行分词,然后一一插入到倒排索引。
    keyword: 在写入时,将整个值插入到倒排索引中,不进行分词。

    TERM + TEXT/KEYWORD

    (1)TERM查询KEYWORD字段

     term不会分词。而keyword字段也不分词。需要完全匹配才可。

    (2)TERM查询TEXT字段

    因为text字段会分词,而term不分词,所以term查询的条件必须是text字段分词后的某一个。

    MATCH + TEXT/KEYWORD

    (1)MATCH查询KEYWORD字段

    match会被分词,而keyword不会被分词,match的需要跟keyword的完全匹配可以。

    (2)MATCH查询TEXT字段

    match分词,text也分词,只要match的分词结果和text的分词结果有相同的就匹配。

    参考文献:https://www.freesion.com/article/59351385584/

  • 相关阅读:
    Spring_依赖注入DI
    Spring_懒加载与非懒加载
    Spring_提示模板配置/搭建spring框架/单例与多例/初始化方法和销毁方法
    Spring
    Mybatis_二级缓存
    Mybatis_一级缓存
    Mybatis_一对多延迟加载
    Mybatis_一对一查询
    MapReduce的核心资料索引 [转]
    Hadoop家族的各个成员
  • 原文地址:https://www.cnblogs.com/it1042290135/p/14605125.html
Copyright © 2011-2022 走看看