TDH-search常用命令
一、指令部分:
1.search管理界面地址:
	http://172.20.230.110:9200/_plugin/head/
2.集群状态查看命令:
	curl -XGET 'localhost:9200/_cluster/health?pretty'
	curl -XGET 'localhost:9200/_cat/health?v'
检查shards unsigned原因
	curl 'localhost:9200/_cat/shards?h=index,shard,prirep,state,docs,store,ip,node,un*&v' | grep UNAS
	检查shards unsigned原因
	curl -XGET localhost:9200/_cat/shards?v  | grep UNA
3.查看集群的节点数目和主节点等信息,如下:
	curl -XGET 'localhost:9200/_cat/nodes?v'
4.查看index的索引信息:
	curl -XGET 'localhost:9200/lxj.test_es_comm/_settings?pretty'
    curl -XGET 'localhost:9200/_clus ter/health/employee?pretty' (查看索引健康状态)
    curl -XGET 'localhost:9200/_cluster/health/?level=indices&pretty'(查看全部索引的健康状态)
    curl -XGET 'localhost:9200/_cluster/health/?level=shards&pretty' (查看分片级别的健康状态)
curl -XPOST 'localhost:9200/lxj.test_es_comm/_open?v'(索引打开)
	curl -XPOST 'localhost:9200/lxj.test_es_comm/_close?v' (索引关闭)
	curl -s 'localhost:9200/_cat/indices?v' |grep red (查看red状态的索引)
5.查看index的表结构:
	curl -XGET 'localhost:9200/default.test_people_es/_mappings?pretty'
6.通过Curl使用RestAPI的格式:
	curl -X<VERB> '<HOST>:9200/<PATH>/[<API>]/[?<PARAMETERS>]' [-d '{<BODY>}']
7.创建index:
	curl -XPUT '172.20.230.110:9200/test/?pretty'
删除index:
    curl -XDELETE 'localhost:9200/test/?pretty'
8.编入文档:(如果有会覆盖)
	curl -XPUT 'localhost:9200/employee/dev/1?pretty' -d '{
    "firstname":        "San",
    "lastname":         "Zhang",
    "age":              26,
    "on_board_date":    "2015-10-31",
    "hometown":         "Beijing",
    "school":           "Nanjing University",
    "married":          false,
    "about":            "I love Beijing Opera"
}'
输出:
{
  "_index" : "employee",    index名。
  "_type" : "dev",          Type名。
  "_id" : "1",              这条Document的ID。。
  "_version" : 1,           版本号,每执行依次命令就加1。 
  "_shards" : {             shard数目及状态。
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  },                     
  "created" : true      true表示第一次创建。  
}
9.查看/employee/dev/1下是否存在Document
	curl -i -XHEAD 'localhost:9200/employee/dev/1?pretty'
10.获取/employee/dev/1下的Document
	curl -XGET 'localhost:9200/employee/dev/1?pretty'
11.更新文档 
curl -XPUT 'localhost:9200/employee/dev/1?pretty' -d '{
    "firstname":        "小江",
    "lastname":         "雷",
    "age":              27,
    "on_board_date":    "1995-02-02",
    "hometown":         "南京",
    "school":           "28所老年大学",
    "married":          false,
    "about":            "铁肩担大任,冲上山顶论英雄,联合起来办大事,做就做到最好,让创新成为习惯,共享才能共赢,创造幸福而有尊严的生活"
}'
12.获取/employee/dev/1中的 name 和 age 字段,多个字段用“,”隔开
	curl -XGET 'localhost:9200/employee/dev/1?_source=firstname,lastname,age&pretty'
13.获取source部分的数据
	curl -XGET 'localhost:9200/employee/dev/1/_source?pretty'
14.新建一个document,会自动生成rowkey:
	curl -XPOST 'localhost:9200/employee/sales?pretty' -d '{
    "firstname":        "Lei",
    "lastname":         "Li",
    "age":              28,
    "on_board_date":    "2013-10-03",
    "hometown":         "Hangzhou",
    "school":           "Zhejiang University",
    "married":          true,
    "about":            "I appear in your English textbook."
}'
15.查询一条记录;
	curl -XGET 'localhost:9200/employee/_search?pretty&q=lastname:"wang"'
16.设置副本数:
	curl -XPUT 'localhost:9200/employee/_settings?pretty' -d '{
    "number_of_replicas": 2
}'
16.设置刷新间隔(入库30秒后才能查询到数据,原本是入库一秒就可以查询到入库的数据,
es要做很多合并的操作,会占用系统资源,降低入库速度)
	curl -XPUT 'localhost:9200/employee/_settings' -d '
	{
	"index" :{
	"refresh_interval" : "30s"
	}
	}
	'
17.设置segment大小
	curl -XPOST 'localhost:9200/employee/_optimize?max_num_segments=3&pretty'
18.设置批量插入的队列大小
curl -XPUT 'localhost:9200/_cluster/settings' -d '
{
"persistent":{
"indices.store.throttle.max_bytes_per_sec" : "100mb",
"threadpool.bulk.queue_size" : "10000"
}
}
'
19.查看es集群nodes状态,是否挂掉
	curl -XGET 'localhost:9200/_cat/nodes?pretty'
20.查看所有节点的统计数据
	curl -XGET 'localhost:9200/_nodes/stats?pretty'
    curl -XGET 'localhost:9200/_nodes/gz230-110/stats?pretty' (查看指定节点的状态)
21.空检索
	curl -XGET 'localhost:9200/_search?pretty'
22.指定条件检索
	curl -XGET 'localhost:9200/employee/sales/_search'
	curl -XGET 'localhost:9200/employee/sales,dev/_search'
    curl -XGET 'localhost:9200/employee/dev/_search?pretty&q=lastname:Li' (uri检索)
23.请求体检索:
	curl -XPOST 'localhost:9200/employee/dev/_search?pretty' -d '
{
    "query" : {
        "match_phrase" : {
            "lastname" : "Li"
        }
    }
}
'
24.指定条件URI检索
	curl -XGET 'localhost:9200/employee/_search?q=Beijing&df=school'(默认查询字段为school)
curl -XGET 'localhost:9200/employee/_search?q=school:(Beijing%20AND%20University)'(AND查询)
curl -XGET 'localhost:9200/employee/_search?q=school:(Beijing%20OR%20University)'(OR查询)
curl -XGET 'localhost:9200/employee/_search?q=*&from=1&size=10'(指定返回从第几条开始,几条结果)
curl -XGET 'localhost:9200/default.test_people_es_1/_search?q=*&sort=id:asc&pretty' (排序)
curl -XGET 'localhost:9200/employee/_search?q=(lastname:li)%20AND%20(school:beijing)'(查询条件AND)
curl -XGET 'localhost:9100/employee/_search?q=+school:nanjing+school:beijing' (+操作符)
curl -XGET 'localhost:9100/employee/_search?q=-school:university' (-操作符)
curl -XGET 'localhost:9200/employee/_search?q=school=(beijing%20AND%20university)%20OR%20(na%20AND%20university)' (括号的使用)
curl -XGET 'localhost:9200/employee/_search?q=??d*' (?匹配任意一个字符,*匹配任意个数的字符)
curl -XGET 'localhost:9200/employee/_search?q=on_board_date:(>2014-01-01%20AND%20<2015-12-31)' (日期范围查询)
25.按照querybody检索:
	curl -XGET '172.20.230.110:9200/default.test_people_es/_search?pretty' -d '{
		"query": {
			"bool" : {
				"must" : {
					"term":{
						"sex": "女"
					}
				}
			}
		}
	}'
26.移动分片
假设我们有两个节点:es_node_one和es_node_two,ElasticSearch在es_node_one节点上分配了ops索引的两个分片,
我们现在希望将第二个分片移动到es_node_two节点上。可以如下操作实现:
# curl -XPOST "http://ESnode:9200/_cluster/reroute' -d  '{
   "commands" : [ {
   "move" : {
   "index" : "ops",
   "shard" : 1,
   "from_node" : "es_node_one",
   "to_node" : "es_node_two"
   }
  }]
  }'
27.分配分片
我们还可以将一个未分配的分片分配到一个指定的节点上。假设ops索引上有一个编号为0的分片尚未分配,
并且我们希望ElasticSearch将其分配到es_node_two上,可以运行如下命令操作:
# curl -XPOST "http://ESnode:9200/_cluster/reroute' -d '{
  "commands" : [ {
   "allocate" : {
    "index" : "ops",
    "shard" : 0,
    "node" : "es_node_two"
    }
   } ]
   }'
28.取消分配
如果希望取消一个正在进行的分配过程,我们通过运行cancel命令来指定我们希望取消分配的索引、节点以及分片,如下所示:
# curl -XPOST "http://ESnode:9200/_cluster/reroute" -d '{
  "commands" : [ {
  "cancel" : {
  "index" : "ops",
  "shard" : 0,
  "node" : "es_node_one"
  }
  } ]
  }'
创建索引:
# curl -XPOST "http://ESnode:9200/katoey"
分配索引在某一节点:
# curl -XPUT "http://ESnode:9200/katoey/_settings" -d '{
  "index.routing.allocation.include.zone": "zone_one,zone_two"
  }'
# curl -XPUT "http://ESnode:9200/_cluster/settings" -d '{
  "transient" : {
   "cluster.routing.allocation.include._ip" "10.0.1.112,10.0.1.114"
   }
  }'
设置每个节点上的分片为1:
 # curl -XPUT "http://ESnode:9200/ops/_settings" -d '{
  "index.routing.allocation.total_shards_per_node" : 1
  }'
29.测试分词,analyzer=ik :用于指定分词器名;上述的四个分词器(english,standard,ik,mmseg)都可以指定
 curl -XPOST ‘localhost:9200/_analyze?analyzer=ik&&pretty’ -d '南京火车站'
二、知识点说明部分:
1.边框为深色的分片是index的主分片,其他为主分片的副本;
2.方框中的数字表示同一索引的不同分片,相同数字表示同一分片的不同副本;
3.索引的主分片的数目,建表后不可改;
4.transwarp Search的含有三个特殊的数据对象:Index,Type,Document,Field,它们与传统二维表的映射关系如下:
  Index(索引)-->Table(表)
  Document-->Row(行)
  Field(字段)-->Column(列)
  Type 是Index的逻辑上的分类,不映射为传统二维表中的数据对象。
5.如果一个Index的 Replica 数大于或等于集群中节点数量,这个Index中将会有分片无法分配到节点上;
6.如果您需要在 <QUERY_STRING> 中包含以下Transwarp Search保留字符,您需要使用 \ 进行转译:
+ - = && || > < ! ( ) { } [ ] ^ " ~ * ? : \ /
TDH-search常用命令的更多相关文章
- Linux 常用命令(持续补充)
		常用命令: command &:将进程放在后台执行 ctrl + z:暂停当前进程 并放入后台 jobs:查看当前后台任务 bg( %id):将任务转为后台执行 fg( %id):将任务调回前 ... 
- 【原】npm 常用命令详解
		今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ... 
- 20145222《信息安全系统设计基础》Linux常用命令汇总
		学习Linux时常用命令汇总 通过Ctrl+f键可在该网页搜索到你想要的命令. Linux中命令格式为:command [options] [arguments] //中括号代表是可选的,即有些命令不 ... 
- CentOS最常用命令及快捷键整理
		CentOS最常用命令及快捷键整理 整理了Linux常用命令及快捷键. 常用命令: 文件和目录: # cd /home 进入 '/home' 目录 # ... 
- Liunx 常用命令
		Liunx 常用命令================================================================================ 1. 远程拷贝文件 ... 
- docker-image container 基本操作 -常用命令
		基本概念: container 容器.可以把每个 container 看做是一个独立的主机. container 的创建通常有一个 image 作为其模板.类比成虚拟机的话可以理解为 image 就是 ... 
- Git 、 Cocoapods常用命令
		Git常用命令 1.添加文件 git add xxx 2.提交更新到本地 git commit -m 'local-repo' 3.提交更新 git push master ... 
- linux-ubuntu常用命令
		常用命令 cd 目录 #跳转到指定目录 cp fileName pfileName #拷贝fileName到pfilename ll #显示目录下的所有文件和目录 uname -a #查看内核版本 c ... 
- linux 常用命令大全
		linux 常用命令大全 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统 ... 
- 实用手册:130+ 提高开发效率的 vim 常用命令
		Vim 是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器.这里收录了130+程 ... 
随机推荐
- 用HTML5 Canvas为Web图形创建特效
			HTML5 Canvas 将使用像素在屏幕上绘制图形图像. 本节演示了五种用于操作像素以创建摄影特效的 Canvas 技术. 您可使用这些技术来生成独具特色的图像,为您的网站.博客.视频游戏画面.广告 ... 
- Object.prototype.constructor
			Returns a reference to the Object function that created the instance's prototype. 注意这个属性的值是函数本省的引用,而 ... 
- 浏览器端JS导出EXCEL
			浏览器端JS导出EXCEL FileSaver.js 实现了在本身不支持 HTML5 W3C saveAs() FileSaver 接口的浏览器支持文件保存.FileSaver.js 在客户端保存文件 ... 
- package-info.java到底是什么
			发现距离上一次在这里写博客已经三个多月了...说好的笔耕不辍呢=.= Anyway,今天(确切说是昨天晚上)在code review中被组里的QA II问到在一个叫做package-info.java ... 
- Snmp在Windows下的实现----WinSNMP编程原理
			在Windows 下实现SNMP协议的编程,可以采用Winsock接口,在161,162端口通过udp传送信息.在Windows 2000中,Microsoft已经封装了SNMP协议的实现,提供了一套 ... 
- 机器学习之SVM支持向量机
			前言 以下内容是个人学习之后的感悟,转载请注明出处~ 简介 支持向量机(support vector machine),简称SVM,通俗来讲,它是一种二类分类模型,其基本模型定义 ... 
- Android开发--数据存储之数据库操作
			简介: SQLite 的介绍: SQLite数据库属于文本型的数据库,它是以文本的形式来保存的.Android提供了对 SQLite 数据库的完全支持,应用程序中的任何类都可以通过名称来访问任何的数据 ... 
- python_xrange和range的异同
			1,range: 函数说明:range([start,]stop[,step]),根据start和stop的范围以及步长step生成一个序列 代码示例: >>> range(5) [ ... 
- OpenWrt路由器通过iPhone有线共享网络上网
			2018年4月更新: 我自己的手机在openwrt上网速很慢,在电脑上又很快.应该不是被限速了,但是没找到原因. 三大运营商在学校争客户,手机卡开出了校内无限流量的条件.很开心,之前准备到东北大学的时 ... 
- jQuery 实现网页跳转或用命令打开指定网页!
			Jquery实现网页跳转或用命令打开指定网页! location.href = "www.baidu.com"; location.href = "aa.aspx&quo ... 
