• 45.mapping建立、修改


    主要知识点

    1、如何建立索引

    2、修改mapping

    3、测试mapping

       

       

    一、如何建立索引

    语法

    PUT /website

    {

    "mappings": {

    "article": {

    "properties": {

    "author_id": {

    "type": "long",

    "index":"anaalyzed"

    },

    }

    }

    analyzed 分词

    not_analyzed 不分词

    no 不能被索引和搜索

       

    二、修改mapping

       

    只能创建index时手动建立mapping,或者新增field mapping,不能update field mapping(也就是不能修改已创建好的field的mapping)

       

    1、先插入一个index

    PUT /website

    {

    "mappings": {

    "article": { #--->type

    "properties": {

    "author_id": { # ---->field

    "type": "long"

    },

    "title": { # ---->field

    "type": "text",

    "analyzer": "english"

    },

    "content": { # ---->field

    "type": "text"

    },

    "post_date": { # ---->field

    "type": "date"

    },

    "publisher_id": { # ---->field

    "type": "text",

    "index": "not_analyzed"

    }

    }

    }

    }

    }

       

    2、修改已存在的fieldtype

    PUT /website

    {

    "mappings": {

    "article": {

    "properties": {

    "author_id": {

    "type": "text"

    }

    }

    }

    }

    }

    执行结果是:

    {

    "error": {

    "root_cause": [

    {

    "type": "index_already_exists_exception",

    "reason": "index [website/co1dgJ-uTYGBEEOOL8GsQQ] already exists",

    "index_uuid": "co1dgJ-uTYGBEEOOL8GsQQ",

    "index": "website"

    }

    ],

    "type": "index_already_exists_exception",

    "reason": "index [website/co1dgJ-uTYGBEEOOL8GsQQ] already exists",

    "index_uuid": "co1dgJ-uTYGBEEOOL8GsQQ",

    "index": "website"

    },

    "status": 400

    }

    3、插入新的field,并指定mapping

    PUT /website/_mapping/article

    {

    "properties" : {

    "new_field" : {

    "type" : "string",

    "index": "not_analyzed"

    }

    }

    }

       

    三、测试mapping

    1、测试可分词

    GET /website/_analyze

    {

    "field": "content",

    "text": "my-dogs"

    }

    2、测试不可分词

    GET website/_analyze

    {

    "field": "new_field",

    "text": "my dogs"

    }

    执行结果是:

    {

    "error": {

    "root_cause": [

    {

    "type": "remote_transport_exception",

    "reason": "[4onsTYV][127.0.0.1:9300][indices:admin/analyze[s]]"

    }

    ],

    "type": "illegal_argument_exception",

    "reason": "Can't process field [new_field], Analysis requests are only supported on tokenized fields"

    },

    "status": 400

    }

  • 相关阅读:
    DS博客作业02--栈和队列
    DS博客作业01-线性表
    c博客06-结构体&文件
    C博客作业05--2019-指针
    C语言博客作业04——数组
    C语言博客作业03--函数
    面向对象设计大作业第二阶段:图书馆系统
    JAVA程序设计-有理数类的设计
    DS博客作业05--查找
    DS博客作业04--图
  • 原文地址:https://www.cnblogs.com/liuqianli/p/8470953.html
Copyright © 2020-2023  润新知