`
fenshen6046
  • 浏览: 52065 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

8索引--具体

es 
阅读更多
1创建索引
每个索引都会有一些相关配置
PUT twitter
{
    "settings" : {
        "index" : {
            "number_of_shards" : 3, 
            "number_of_replicas" : 2 
        }
    }
}

如上设置数据节点为3个(默认5个),副本2个(默认1个)。
创建索引配置的时候也可以设置索引内部的数据定义
PUT test
{
    "settings" : {
        "number_of_shards" : 1
    },
    "mappings" : {
        "type1" : {
            "properties" : {
                "field1" : { "type" : "text" }
            }
        }
    }
}

一般情况下索引创建在主数据节点开始了之后返回
{
    "acknowledged": true,
    "shards_acknowledged": true
}

acknowledged代表索引是否成功创建
shards_acknowledged代表是否足够的shard节点开始了

2删除索引
删除索引
DELETE /twitter
同样也支持根据通配符删除多个

3获取索引
获取索引信息
GET /twitter

4判断索引是否存在
HEAD twitter
httpcode404代表不存在,200代表存在

5打开关闭索引api
我们可以关闭或者开启索引的接口。当索引接口被关闭的时候不能对该索引进行读写操作。
POST /my_index/_close
POST /my_index/_open
当指定的索引不存在的时候回抛出异常

8创建新类型数据定义
在已有的索引上添加新类型或者对已有类型添加新的字段
PUT twitter 
{
  "mappings": {
    "tweet": {
      "properties": {
        "message": {
          "type": "text"
        }
      }
    }
  }
}

PUT twitter/_mapping/user 
{
  "properties": {
    "name": {
      "type": "text"
    }
  }
}

PUT twitter/_mapping/tweet 
{
  "properties": {
    "user_name": {
      "type": "text"
    }
  }
}

9获取数据定义
获取某一类型的定义
GET /twitter/_mapping/tweet

获取多个类型的定义
GET /_mapping/tweet,kimchy
GET /_all/_mapping/tweet,book

获取所有定义
GET /_all/_mapping
GET /_mapping



11type是否存在
查看某个索引下的类型是否存在
HEAD twitter/_mapping/tweet


12索引别名
可以给索引添加别名,也可以给多个索引添加相同的别名
POST /_aliases
{
    "actions" : [
        { "remove" : { "index" : "test1", "alias" : "alias1" } },
        { "add" : { "index" : "test2", "alias" : "alias1" } }
    ]
}


13修改索引设置
可以通过http接口动态对索引进行设置。
设置备份为4
curl -XPUT 'localhost:9200/my_index/_settings' -d '
{
    "index" : {
        "number_of_replicas" : 4
    }
}'

修改索引生效时间
curl -XPUT localhost:9200/test/_settings -d '{
    "index" : {
        "refresh_interval" : "-1"
    } }'


14获取索引设置
获取某个索引的设置
GET /twitter/_settings

其他一些写法
GET /twitter,kimchy/_settings
GET /_all/_settings
GET /log_2013_*/_settings


15分析器
尝试各种分析器。如使用标准分析器分析一段话
curl -XGET 'localhost:9200/_analyze' -d '
{
  "analyzer" : "standard",
  "text" : "this is a test"
}'
如果传输的参数是数组,他会当做多值来分析(我没懂啥意思)
curl -XGET 'localhost:9200/_analyze' -d '
{
  "analyzer" : "standard",
  "text" : ["this is a test", "the second text"]
}'

或者通过指定断词,词过滤器,字符过滤器来自己定义分析器。次过滤器可以使用简介词代替.
curl -XGET 'localhost:9200/_analyze' -d '
{
  "tokenizer" : "keyword",
  "filter" : ["lowercase"],
  "text" : "this is a test"
}'

curl -XGET 'localhost:9200/_analyze' -d '
{
  "tokenizer" : "keyword",
  "filter" : ["lowercase"],
  "char_filter" : ["html_strip"],
  "text" : "this is a <b>test</b>"
}'
如果想要更相信的信息,可以添加参数explain参数(默认为false)。
GET _analyze
{
  "tokenizer" : "standard",
  "filter" : ["snowball"],
  "text" : "detailed output",
  "explain" : true,
  "attributes" : ["keyword"] 
}



16索引模板
用户可以自己定义索引模板(包括设置和定义),之后再使用的时候可以直接使用模板。修改模板不会对已有的创建有修改。例
PUT _template/template_1
{
  "template": "te*",
  "settings": {
    "number_of_shards": 1
  },
  "mappings": {
    "type1": {
      "_source": {
        "enabled": false
      },
      "properties": {
        "host_name": {
          "type": "keyword"
        },
        "created_at": {
          "type": "date",
          "format": "EEE MMM dd HH:mm:ss Z YYYY"
        }
      }
    }
  }
}

删除模板
DELETE /_template/template_1

获取模板
GET /_template/temp*
GET /_template/template_1,template_2

查看是否存在模板
HEAD _template/template_1


18索引的统计信息
查看索引的统计信息
GET /index1,index2/_stats


19索引分片
可以查看索引分片信息,对优化起到一定提示
curl -XGET 'http://localhost:9200/test/_segments'
curl -XGET 'http://localhost:9200/test1,test2/_segments'
curl -XGET 'http://localhost:9200/_segments'

为了调试希望展示更多的信息,可以添加verbose
curl -XGET 'http://localhost:9200/test/_segments?verbose=true'


20索引恢复
提供索引修复的详细信息。如下会显示索引恢复信息
GET index1,index2/_recovery?human
如果想查看所有的索引恢复信息
GET /_recovery?human


21索引数据保存
获取数据节点保存信息。默认情况下之展示未分配的数据节点。当集群状态为黄色的时候展示至少有一个未分配的副本节点。当集群状态为红色的时候展示未分配的主节点。
curl -XGET 'http://localhost:9200/test/_shard_stores'
curl -XGET 'http://localhost:9200/test1,test2/_shard_stores'
curl -XGET 'http://localhost:9200/_shard_stores'
也可以通过参数status指定类型。如前面所讲共有三种green,yellow,red
 curl -XGET 'http://localhost:9200/_shard_stores?status=green'


22清理缓存
清理缓存
POST /twitter/_cache/clear
默认清理所有缓存,也可以指定清理搜搜,数据元信息,请求信息。也可以清理多个索引的缓存信息
POST /kimchy,elasticsearch/_cache/clear
POST /_cache/clear


24刷新
默认是定时刷新(1秒)。es中的数据默认是存储在内存中的经过1秒后会被写入到文件系统缓存,这样文档就可以被搜索到了(这也是为什么es是近实时的原因)。以下可以强制刷新
POST /twitter/_refresh
也可以多个索引进行刷新
POST /kimchy,elasticsearch/_refresh
POST /_refresh


25合并分片
合并索引减少分片。合并属于阻塞操作。所有请求都会被阻塞住,直至合并完成。
POST /twitter/_forcemerge
也可以传输参数
max_num_segments:代表合并的段数。为了充分合并,可以设置为1.默认检查是否需要合并,如果需要则执行
only_expunge_deletes:是否只对删除的数据进行合并,默认为false。在lucene中。删除操作只是把文档标记为删除,并没有真实删除。
flush在执行玩合并之后是否执行刷新操作。默认为true
也可以对多个索引执行操作
POST /kimchy,elasticsearch/_forcemerge
POST /_forcemerge


分享到:
评论

相关推荐

    SQL-Serve实验5-索引和视图-.doc

    具体包括以下几个方面: 1. **索引创建**:熟练掌握通过SQL Server图形界面工具以及Transact-SQL语句(`CREATE INDEX`)来创建索引。 2. **索引查看**:学会使用SQL Server图形界面工具和Transact-SQL语句(`sp_...

    luke8用于查看lucene保存的索引库数据和文档数据

    - **浏览文档内容**:用户可以通过luke8查看索引库中的具体文档,包括原始文本、分词后的词汇列表等。 - **查询分析**:luke8可以分析查询语句,展示实际执行的搜索操作,帮助理解查询优化过程。 - **性能评估**:...

    MySQL索引 使用笔记

    【MySQL索引 使用笔记】 ...以上是对MySQL索引使用的基本概念和实践要点的介绍,实际应用中还需要结合具体业务场景和数据特点进行调整和优化。学习并掌握索引的正确使用,对于提升数据库性能至关重要。

    索引0-C--问题--已答1

    其中列举了一些具体的逻辑门,如2:1多路选择器(74157)、3:8解码器(74138)、4:1多路选择器(74153),以及包括与门、与非门、或非门、非门、或门、触发器、计数器、寄存器、三态缓冲器和异或门在内的其他组件。...

    A-Z索引排序

    在实际项目中,可以进一步定制UI样式,如改变索引栏的颜色、大小、字体等,以满足具体需求。在给定的"ListViewIndex"文件中,可能包含了实现这一功能的相关代码和资源,开发者可以通过学习和研究这些代码,加深对A-Z...

    创建数据库表与索引实验.docx

    ### 创建数据库表与索引实验知识点总结 #### 一、实验背景与目标 **实验标题:** 创建数据库表与索引实验 **实验描述:** 本次实验旨在让学生掌握如何在数据库中创建表和索引,同时理解并实践数据完整性的重要性...

    Data-storage-and-indexing.rar_索引

    8. 空间索引:针对地理空间数据的索引,如GIS应用中使用的。 9. 位图索引:在数据量小或存在大量重复值的情况下,位图索引效率高,因为它用二进制位表示值是否存在。 索引的优缺点并存。优点是显著提高查询速度,...

    函数索引使用

    函数索引(Function-Based Index, FBI),是Oracle数据库自Oracle 8i版本引入的一种特殊类型的索引。它允许在创建索引时使用任意内置或用户自定义的函数对表中的列进行处理,从而为特定的查询条件提供更高效的访问...

    MONGODB的索引探究

    10. 索引交叉:复杂查询可能需要多个索引配合,是否使用复合索引还是多个单索引取决于具体查询和系统环境。 11. 策略创建索引:创建索引应根据查询需求,如创建单键索引支持单键查询,或创建复合索引支持多种查询和...

    数据库索引

    具体来说,InnoDB存储引擎会先遍历辅助索引,通过叶子级别的指针获取指向主键索引的主键,再通过主键索引来定位完整的行记录。 **特点:** - 需要更多的I/O操作来获取完整的行数据; - 不包含所有列的信息,因此在...

    oracle索引类型和扫描方式

    降序索引是在Oracle 8i版本中引入的一种新索引类型,主要用于处理逆向排序的查询需求。它可以按照指定列的降序排列数据,从而提高这类查询的执行效率。 **特点:** - 支持逆向排序查询。 - 对于降序排序的查询更加...

    搜索引擎-倒排索引基础知识

    搜索引擎的索引是实现“单词-文档矩阵”的具体数据结构,倒排索引是实现单词到文档映射关系的最佳实现方式。“倒排索引”是一种特殊的索引结构,它可以根据单词快速获取包含这个单词的文档列表。下面是搜索引擎-倒排...

    VIP-mysql索引优化实战一.pdf

    首先,我们通过一个具体的例子来了解MySQL中的索引及其优化方法。在给定的内容中,展示了一个名为`employees`的表的创建语句: ```sql CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name`...

    oracle的索引初步学习.doc

    以一个具体的例子来说明:假设我们有一个非分区表`warecountd`,表中有130万行数据,其中有一个列为`goodid`,类型为`char(8)`。在这个列上创建了一个B树索引。 - **数据块大小**:默认情况下,Oracle的数据块大小...

    为什么oracle有时不用索引来查找数据

    执行计划是指定如何最有效地执行SQL语句的具体策略,其中包括但不限于: - 全表扫描(Full Table Scan):遍历整个表以找到匹配的数据。 - 索引扫描(Index Scan):利用索引来快速定位数据。 - 索引范围扫描(Index...

    Python-检查索引文件与实际数据文件的一致性需满足索引文件中的文件名与实际文件文件名一致

    5. **处理不一致**:根据具体需求,可以选择自动更新索引文件或发出警告,提醒用户手动检查和修复不一致问题。 在实际应用中,还可以考虑扩展这个过程,比如检查文件的大小、时间戳或其他元数据,以进一步确认一致...

    行业文档-设计装置-书刊速查择页索引标记编印法.zip

    择页,又称选页,是指在编制索引时,确定每个条目所对应的具体页码。这一步骤要求对书刊内容有深入理解,确保每个条目的页码准确无误,方便读者快速跳转至相关内容。 3. **标记编印法**: 标记编印法是指在创建...

    SQLServer教程第8章索引的创建与维护[参考].pdf

    此外,还可以通过`sp_rename`存储过程重命名索引,但未在此处给出具体例子。 索引的维护与优化同样重要,这包括监控索引的使用情况,定期分析索引统计信息,决定何时重建或重新组织索引以保持其最佳性能。当索引变...

Global site tag (gtag.js) - Google Analytics