zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    特效优化
    Jsp
    JRebel 热部署
    mysql
    行为树
    Medium | LeetCode 139. 单词拆分 | 动态规划
    Medium | LeetCode 31. 下一个排列
    Easy | LeetCode 27. 移除元素 | 快慢指针
    Medium | LeetCode 437. 路径总和 III | 树 + 回溯 + 前缀和
    Medium | LeetCode 337. 打家劫舍 III | 树后序遍历 + 动态规划
  • 原文地址:https://www.cnblogs.com/WalkOnMars/p/12455823.html
Copyright © 2011-2022 走看看