es 使用

本文介绍了如何在Elasticsearch中使用各种数据类型,如multivalue field和object field。详细讲解了如何创建、删除和更新索引,以及管理文档的映射(mapping)。还探讨了Text类型的字段属性,如analyzer、index和store,强调了它们在搜索和存储中的作用。最后,讨论了处理empty field和object field的最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

增加索引
put /索引名

删除索引
delete /索引

查看所有索引

get /_cat/indices?v

查看集群状态
get /_cat/health?v

增加文档
put /index/type/id
其中type:_doc

查看文档
get /index/type/id

在这里插入图片描述

更新:
post /{index}/type/{id}/_update
post /{index}/_update/{id}

在这里插入图片描述
在这里插入图片描述

自动生成文档id
在这里插入图片描述

在这里插入图片描述

如果不加_create,就会直接覆盖掉,返回的json中,值是update
在这里插入图片描述

批量增删改bulk
在这里插入图片描述

es在保存文档时,会对文档进行规范化处理,建立倒排索引,查询时,将查询条件也进行规范化处理,然后从倒排索引里查询数据,然后再返回真正的数据
mapping:动态映射字段属性

get /索引/_mapping

搜索
在这里插入图片描述

创建索引后,应该立即手动创建映射

PUT book/_mapping
{
	"properties": {
           "name": {
                  "type": "text"
            },
           "description": {
              "type": "text",
              "analyzer":"english",
              "search_analyzer":"english"
           },
           "pic":{
             "type":"text",
             "index":false
           },
           "studymodel":{
             "type":"text"
           }
    }
}
Text 文本类型

1)analyzer

通过analyzer属性指定分词器。

上边指定了analyzer是指在索引和搜索都使用english,如果单独想定义搜索时使用的分词器则可以通过search_analyzer属性。

2)index ( keyword关键字字段, 目前已经取代了"index": false。)

index属性指定是否索引。

默认为index=true,即要进行索引,只有进行索引才可以从索引库搜索到。

但是也有一些内容不需要索引,比如:商品图片地址只被用来展示图片,不进行搜索图片,此时可以将index设置为false。

删除索引,重新创建映射,将pic的index设置为false,尝试根据pic去搜索,结果搜索不到数据。

3)store

是否在source之外存储,每个文档索引后会在 ES中保存一份原始文档,存放在"_source"中,一般情况下不需要设置store为true,因为在_source中已经有一份原始文档了。

只能创建index时手动建立mapping,或者新增field mapping,但是不能update field mapping。

10.9 复杂数据类型

10.9 .1 multivalue field

{ “tags”: [ “tag1”, “tag2” ]}

建立索引时与string是一样的,数据类型不能混

10.9 .2. empty field

null,[],[null]

10.9 .3. object field

PUT /company/_doc/1
{
  "address": {
    "country": "china",
    "province": "guangdong",
    "city": "guangzhou"
  },
  "name": "jack",
  "age": 27,
  "join_date": "2019-01-01"
}

创建索引,同时创建映射

PUT /index
{
    "settings": { ... any settings ... },
    "mappings": {
       "properties" : {
            "field1" : { "type" : "text" }
        }
    },
    "aliases": {
    	"default_index": {}
  } 
}

修改索引

PUT /my_index/_settings
{
    "index" : {
        "number_of_replicas" : 2
    }
}

为了安全起见,防止恶意删除索引,删除时必须指定索引名:

elasticsearch.yml

action.destructive_requires_name: true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值