美文网首页
elasticsearch的keyword与text的区别

elasticsearch的keyword与text的区别

作者: 滴流乱转的小胖子 | 来源:发表于2020-06-30 07:11 被阅读0次

    在es 2.*版本里面是没有这两个字段,只有string字段。

    5.*之后,把string字段设置为了过时字段,引入text,keyword字段

    这两个字段都可以存储字符串使用,但建立索引和搜索的时候是不太一样的

    keyword:存储数据时候,不会分词建立索引

    text:存储数据时候,会自动分词,并生成索引(这是很智能的,但在有些字段里面是没用的,所以对于有些字段使用text则浪费了空间)。

    "zuMaker":
    {"type":"keyword","index":"false"},
    "zuName":
    {"type":"text","index":"true","boost":"5","analyzer":"ik_max_word","search_analyzer":"ik_max_word"}

    ///////****//////
    1.text类型和keyword类型

    1. 多字段定义

    一切文本类型的字符串可以定义成 “text”或“keyword”两种类型。区别在于,text类型会使用默认分词器分词,当然你也可以为他指定特定的分词器。如果定义成keyword类型,那么默认就不会对其进行分词。

    es对字符串类型的mappong设定,会将其定义成text,同时为他定义一个叫做keyword的子字段。keyword只是他的名字,你也可以定义成kw。这个字段的类型是keyword(这是一个类型的关键字)

    多字段类型情况下,你可以查询 title,也可以查询title.keyword查询类型为keyword的子字段

    相关文章

      网友评论

          本文标题:elasticsearch的keyword与text的区别

          本文链接:https://www.haomeiwen.com/subject/szhtqktx.html