elasticsearch索引操作,索引创建、索引更新、索引删除

创建索引

PUT /goods_info
{
  "mappings": {
    "properties": {
      "name":    { "type": "text" },  
      "brand":  { "type": "keyword"  }, 
      "detail":   { "type": "text"  },
      "price":{"type":"double"},
      "picture":{"type":"text","index":false}
    }
  },
  "settings": {                            
      "number_of_shards":5,       
      "number_of_replicas":2       
  }
}

更新索引,添加字段

PUT /goods_info/_mappings
{
    "properties": {
        "click_url":{"type":"text","index":false}
    }
 
}

注意更新索引时与创建索引大致一样,只是更新索引时候的url不同,需要在后面加一个_mapping路径,同时请求的json里面不需要mappings路径,只需要properties即可

更新索引,修改配置

PUT /goods_info/_settings
{
    "number_of_replicas":3      
}

同理在更新setting的时候和更新maping的时候一样

获取索引结构

GET /goods_info/_mapping

获取索引指定字段结构

GET /goods_info/_mapping/field/brand

获取索引所有信息

GET /goods_info

获取索引某个字段信息

GET /goods_info/_mapping/field/brand

关闭索引

POST /goods_info/_close

打开索引

POST /goods_info/_open

查看分词结果

  • 标准分词器
POST _analyze 
{
  "analyzer": "standard",
  "text": "我爱祖国"
}
  • IK分词器
POST _analyze 
{
  "analyzer": "ik_max_word", 
  "text": "我爱祖国"
}

这里IK提供了两种分词器:ik_smart、ik_max_word

这里ik_smart会将文本做粗粒度的划分,而ik_max_word则会做细粒度划分

修改索引分词器为IK分词器
PUT /goods_info/_settings
{
  "analysis": {
    "analyzer": {
      "ik": {
        "tokenizer": "ik_max_word"
      }
    }
  }
}

需要注意的是,如果修改这个配置需要先将索引关闭,修改完之后再打开。

详见index apis


版权声明:本文为LeoHan163原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。