• es版本2.x的string和5.x的keyword,text的区别和联系


    一 es2.x和es5.x版本定义字符串类型

    2.x版本的es

    string的类型

    全文检索   分词   index=analysis  按单个字符匹配    被称作analyzed字符串

    关键词搜索 不分词  index=not_analysis  按照整个文本进行匹配  被称为not-analyzed字符串

    index=no  表示不被索引,产生的后果就是不能被检索到

    string类型会给我们带来很多困惑:

    5.x版本的es

    为了避免上述尴尬, string字段被拆分成两种新的数据类型: text(分词)用于全文搜索的, 而keyword(不分词)用于关键词搜索.

    ElasticSearch决定从Logstash中借取思路: 字符串将默认被同时映射成text和keyword类型

    {

        "foo": "bar"

    }

    ElasticSearch将会为你创建下面的动态映射(dynamic mappings):

    {

        "foo": {

            "type": "text",

            "fields": {

                "keyword": {

                    "type": "keyword",

                    "ignore_above": 256

                }

            }

        }

    }

    当然, 基于这个映射你即可以在foo字段上进行全文搜索, 也可以通过foo.keyword字段实现关键词搜索及数据聚合.

    第二:2.x和5.x中text和keyword的对比

    1.定义分词analyzed,2.x和5.x的定义

    {

        "foo": {

            "type": "string",

            "index": "analyzed"

        }

    }

    如今只要映射为text即可:

    {

        "foo": {

            "type": "text",

            "index": true

        }

    }

    换句话说:2.x的type=string,index=analyzed等于5.x的type=text,index=true

    2.定义分词not_analyzed,2.x和5.x的定义

    {

        "foo": {

            "type": "string",

            "index": "not_analyzed"

        }

    }

    也只需要被定义为keyword即可:

    {

        "foo": {

            "type": "keyword",

            "index": true

        }

    }

    换句话说:2.x的type=string,index=not_analyzed等于5.x的type=keyword,index=true

    简而言之,言而总之:text(分词),keyword(不分词)一个用于全文检索,一个用于聚合和排序
    ————————————————
    版权声明:本文为CSDN博主「健康平安的活着」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/u011066470/article/details/88760762

  • 相关阅读:
    C++ 动态多维数组的申请与释放
    OpenCV视频的读写
    Python 函数的参数传递
    Python 赋值、浅拷贝和深拷贝
    操作系统学习笔记(七) 死锁
    操作系统学习笔记(六) 文件系统
    浅谈Mysql共享锁、排他锁、悲观锁、乐观锁及其使用场景
    heap与stack的区别
    深入学习golang中new与make区别
    Linux CentOS 7 安装confluence 5.8.10
  • 原文地址:https://www.cnblogs.com/WalkOnMars/p/12455823.html
Copyright © 2020-2023  润新知