ElasticSearch 索引创建
创始人
2025-05-31 20:49:24
0

准备工作

在开始创建索引之前,您需要安装Elasticsearch并启动Elasticsearch服务器。您还需要使用一个REST客户端,例如Kibana或Postman,以便与Elasticsearch进行交互。

创建一个索引

要创建Elasticsearch索引,请执行以下步骤:

  1. 打开REST客户端并连接到Elasticsearch服务器。

  2. 选择要创建索引所在的集群(如果有多个集群)

  3. 使用PUT方法指定索引名称和参数。例如,我们将创建一个名为“my_index”的索引。

    PUT /my_index

4.在请求体中,指定索引的映射。索引映射定义了索引中包含的字段及其属性。下面是一个示例映射:

{"mappings": {"properties": {"field_1": { "type": "text" },"field_2": { "type": "keyword" }}}
}

上面的示例中,我们定义了一个包含两个字段的索引:field_1和field_2。field_1是一个文本字段,field_2是一个关键词字段。

  1. 现在,我们可以使用REST客户端向Elasticsearch服务器发送PUT请求来创建索引:

        {"mappings": {"properties": {"field_1": { "type": "text" },"field_2": { "type": "keyword" }}}}
    

如果一切顺利,Elasticsearch服务器应该会响应一个JSON格式的确认消息。

在Kibana中,您可以使用DevTools界面创建索引。请注意,Kibana和Elasticsearch是一体化的,因此您不需要手动连接到Elasticsearch服务器。

下面是在Kibana中创建索引的步骤:

  1. 在Kibana主界面上,单击左侧面板中的DevTools。

  2. 在DevTools界面中,选择Console选项卡。

  3. 在控制台中,输入以下内容:

    PUT /my_index
    {"mappings": {"properties": {"field_1": { "type": "text" },"field_2": { "type": "keyword" }}}
    }
    
    1. 单击Send请求按钮,以将请求发送到Elasticsearch服务器。

现在,您已经了解如何创建Elasticsearch索引。请记住,索引是存储数据的基本单元。创建一个正确的索引映射可以使您的数据更容易搜索和分析。

我将详细说明Elasticsearch索引的创建过程,包括索引映射、索引别名、设置分片和副本。希望这将帮助您更全面地了解如何使用Elasticsearch创建索引。

索引映射

Elasticsearch索引映射定义了索引中包含的字段及其属性。映射是一个JSON对象,它定义了字段类型、分析器、嵌套和多个映射类型等。

字段类型

在索引映射中,您需要定义每个字段的数据类型。Elasticsearch支持以下字段类型:

  • text:文本字段
  • keyword:关键词字段
  • date:日期字段
  • long、integer、short、byte、double、float、half_float、scaled_float:数字类型字段
  • boolean:布尔类型字段
  • binary:二进制类型字段
  • range:范围类型字段
  • object:嵌套类型字段
  • nested:嵌套类型字段(如数组)

下面是一个索引映射的示例:

{"mappings": {"properties": {"title": {"type": "text"},"author": {"type": "text"},"year": {"type": "date"},"price": {"type": "float"},"publisher": {"type": "object","properties": {"name": { "type": "text" },"address": { "type": "text" }}}}}
}

上面的示例中,我们定义了一个包含五个字段的索引。其中,title和author是文本类型字段,year是日期类型字段,price是浮点数类型字段,publisher是嵌套对象类型字段,包含name和address两个子字段。

分析器

分析器是将文本字段分割成单词的组件。Elasticsearch默认使用StandardAnalyzer分析器,该分析器将文本分割成小写单词。您可以选择使用其他分析器,如WhitespaceAnalyzer、SimpleAnalyzer或KeywordAnalyzer,或根据需要自定义分析器。

下面是一个使用自定义分析器的索引映射示例:

{"settings": {"analysis": {"analyzer": {"my_analyzer": {"type": "custom","tokenizer": "my_tokenizer","filter": ["lowercase", "stop"]          }},"tokenizer": {"my_tokenizer": {"type": "whitespace"}},"filter": {"stop": {"type": "stop","stopwords": ["a", "an", "the"]}}}},"mappings": {"properties": {"title": {"type": "text","analyzer": "my_analyzer"}}}
}

上面的示例中,我们定义了一个名为“my_analyzer”的自定义分析器,并将它应用于title字段。分析器使用whitespace分词器将文本分割成单词,然后使用lowercase和stop过滤器处理单词列表。

嵌套和多个映射类型

嵌套映射允许您将对象属性嵌入到其他对象中。例如,您可以将一个人的姓名、地址和电话号码放在一个对象中,并嵌入到一个“联系人”对象中。嵌套映射可以让您针对嵌套对象的特定属性进行搜索。

多个映射类型允许您在同一索引中存储多种不同类型的文档,并为每种类型定义不同的映射。例如,您可以将新闻文章和产品目录存储在同一索引中,并为每种类型定义不同的字段和映射。

下面是一个包含嵌套映射和多个映射类型的索引映射示例:

{"mappings": {"properties": {"title": {"type": "text"},"author": {"type": "text"},"tags": {"type": "keyword"},"price": {"type": "float"},"product": {"type": "nested","properties": {"name": { "type": "text" },"category": { "type": "keyword" }}},"type": {"type": "keyword"}},"news": {"properties": {"date": {"type": "date"}}},"product": {"properties": {"description": {"type": "text"}}}}
}

上面的示例中,我们定义了一个包含六个字段的索引。其中,title、author和tags是文本类型字段,price是浮点数类型字段,product是嵌套映射类型字段。我们还定义了两个映射类型:news和product,分别包含与新闻和产品相关的字段。

索引别名

索引别名是一个指向一个或多个索引的指针。别名可用于将多个索引组合在一起,或为单个索引提供简化的访问路径。在Elasticsearch中,别名可以在索引创建时或随后添加。

创建索引别名

要创建别名,请执行以下步骤:

  1. 打开REST客户端并连接到Elasticsearch服务器。

  2. 使用PUT方法指定索引和别名名称。例如,我们将索引“my_index”指定为别名“my_alias”。

    PUT /my_index/_alias/my_alias

  3. 如果要指定多个索引,请使用逗号分隔它们。例如,我们将索引“my_index1”和“my_index2”指定为别名“my_alias”。

    PUT /my_index1,my_index2/_alias/my_alias

  4. 要为别名指定过滤器,请在请求体中指定过滤器JSON对象。例如,我们将在创建别名“my_alias”时指定一个过滤器,以仅匹配包含“category”字段的文档。

    {"actions" : [{"add" : {"index" : "my_index","alias" : "my_alias","filter" : {"exists" : { "field" : "category" }}}}]
    }
    

    上面的示例中,我们使用“add”操作将索引“my_index”和别名“my_alias”关联。我们还指定了一个过滤器对象,该对象仅匹配包含“category”字段的文档。

更新/删除索引别名

要更新或删除别名,请执行以下步骤:

  1. 打开REST客户端并连接到Elasticsearch服务器。

  2. 使用POST方法指定索引别名操作。例如,我们将删除别名“my_alias”。

    {"actions" : [{ "remove" : { "index" : "my_index", "alias" : "my_alias" } }]
    }```
  3. 如果要更新别名,请使用“add”操作添加新的索引别名。例如,我们将别名“my_alias”从索引“my_index”更改为“my_index1”。

    {"actions" : [{ "remove" : { "index" : "my_index", "alias" : "my_alias" } },{ "add" : { "index" : "my_index1", "alias" : "my_alias" } }]
    }
    

分片和副本

在Elasticsearch中,数据被分为多个分片并分布在多个节点上。分片允许数据水平扩展,提高了系统的容错性和性能。每个分片都是一个自包含的Lucene索引,可以在多台服务器上进行分布式存储和处理。

副本是对数据的备份,用于提高系统的可用性和容错性。每个索引都可以有零个或多个副本。副本只存储数据的副本,不参与搜索和分析操作。

设置分片和副本

在创建索引时,您可以指定要为索引创建的分片数量和副本数量。例如,我们将为名为“my_index”的索引创建两个分片和一个副本:

{"settings": {"index": {"number_of_shards": 2,"number_of_replicas": 1}},"mappings": {"properties": {"title": {"type": "text"}}}
}

上面的示例中,我们在请求体中指定了索引的设置和映射。在设置中,我们将分片数设置为2,并将副本数设置为1。在映射中,我们定义了一个名为“title”的文本字段。

注意,一旦创建索引,就无法更改其分片数。但是,您可以更改副本数。要更改索引的副本数,请执行以下步骤:

  1. 打开REST客户端并连接到Elasticsearch服务器。

  2. 使用PUT方法指定索引名称,然后使用请求体指定新的副本数。例如,我们将“my_index”索引的副本数更改为2。

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

总结

创建索引是使用Elasticsearch的关键步骤之一。在创建索引时,您需要考虑字段类型、分析器、嵌套和多个映射等因素。您还可以使用别名、分片和副本等功能来提高系统的容错性、性能和可用性。

在创建索引之前,请确保您已经安装了Elasticsearch并启动了服务器。您还需要使用适当的REST客户端与服务器进行交互。如果您遇到问题,请查看Elasticsearch文档或参考Elasticsearch社区中的其它资源。

#ChatGPT协助生成

相关内容

热门资讯

最新或2023(历届)度网络流...  三角坟地——缺德  尿尿对旗杆——充(冲)棍  赶着草泥马过火焰山——往死里逼  都上厕所去了吧—...
老虎挂佛珠歇后语 老虎挂佛珠歇...  歇后语:老虎挂念珠  答案:假慈悲(慈善,怜悯。表面上装出一付慈爱怜悯的样子。)  【关于老虎歇后...
黄鼠狼给鸡拜年歇后语出处 黄鼠...   黄鼠狼一家给鸡拜年歇后语的答案:没有好心  从前,森林里有很多黄鼠狼,黄鼠狼的妈妈说:过年了我们...
诸葛亮斩马谡歇后语 诸葛亮斩马...  孔明挥泪斩马谡的歇后语 孔明挥泪斩马谡——军中无戏言。  孔明斩马谡→明正军纪  诸葛亮挥泪斩马谡...
太阳底下点灯歇后语 太阳底下点...  太阳底下点灯--—多余  太阳底下点灯——白费蜡  太阳底下点灯——没影  太阳底下点灯——多此一...
最经典的搞笑歇后语大全 东北歇...  拉肚子吃泻药——胡摆治  拉直狗腿——办不到;没法办  拉着拖车卖豆腐——架子不小;好大的架子  ...
与竹笋有关的歇后语 与竹笋有关...   山里的竹笋——钻劲大;有股钻劲  拔节的竹笋——天天向上  破土的春笋——拔尖  牛吃笋子——胸...
灶王爷的歇后语大全 灶王爷的歇...  编辑文件是者按 灶王爷跌跟头——砸锅了  灶王爷放屁——神气  灶王爷扔石头——砸锅  灶王爷扫院...
八月十五的歇后语大全 八月十五...  八月十五团圆节 —— 一年一回  八月十五种花生 —— 瞎指挥  八月十五捉兔子 —— 有你过节,...
逼楚霸王寻死歇后语 逼楚霸王寻... 逼楚霸王寻死  逼楚霸王寻死——心理战术  逼出来的口哄  逼出来的口哄——信不得  崩了群的马  ...
35句绝妙歇后语大全 35句绝...  1.蝙蝠身上插鸡毛--你算什么鸟  2.苍蝇采蜜--装疯(蜂)  3.茶壶里的水--滚开  4.大...
各地地方方言歇后语精选 重庆方...   四大金刚摊铺——排场蛮大。  牛头裤短统袜──相差一大截。  弹花衣店里死了老板──不谈(弹)。...
爆笑歇后语三十则大全 歇后语大... 娃娃玩肥皂泡——吹起来了  又属百灵鸟又属袋鼠——会唱会跳  棒槌敲竹筒——空想(响)  半夜下雨—...
百年追梦全面小康读后感1000... 导语:"天下兴亡,匹夫有责"这一激励人们报效祖国的古训是许多有志之士的座右铭,也是当代中国光大少年的...
最新或2023(历届)百年追梦... 导语:人人并且脚踏实地,就能拥有梦想,实现梦想。下面是芒果教育网小编收集整理的关于《百年追梦全面小康...
最新或2023(历届)跨越百年...  导语:理性的魅力是居里夫人蜕变的法宝,用中国的古话就是宠辱不惊吧。千千百百的打击,百百千千的荣誉,...
百年追梦全面小康读后感800字... 导语:"天下兴亡,匹夫有责"这一激励人们报效祖国的古训是许多有志之士的座右铭,也是当代中国光大少年的...
最新或2023(历届)高中优秀... 在拉美文学百余年的发展过程中,出现过许多不同的流派:智利诗人聂鲁达对人性的思考,委内瑞拉文学家卡斯帕...
百年追梦全面小康读后感800字...  导语:"天下兴亡,匹夫有责"这一激励人们报效祖国的古训是许多有志之士的座右铭,也是当代中国光大少年...
关于《塘约道路》党员读后感大全... 导语:《塘约路途》指引我国村庄前进方向,塘约路途是有远见的当地领导干部率民众放下包袱、轻装上阵、齐心...