Linux之ElasticSerach基本命令

 

索引词(term):一个能够被索引的精确值,区分大小写,可以通过term查询进行准确的搜索

文本(text):一段普通的非结构化文字,文本会被拆分成一个个的索引词,存储在es的索引库中,这样才能进行搜索。

分析(analysis):将文本转换为索引词的过程,分析的结果依赖于分词器 分析机制用于进行全文文本的分词,以建立供搜索用的反向索引。

索引(index):索引类似于关系数据库中的数据库,每个索引有不同字段,可以对应不同的类型,每个索引都可以有一个或者多个主索引片,同时每个索引还可以有零个或者多个副本索引片。

类型(type):类型类似于关系数据库中的表,每种类型都可以指定不同的列,映射定义文档中的每个字段的类型,并可以指定如何分析

 

一.创建索引

两种方式:

第一种:

curl -XPUT http://localhost:9200/index

但是这种方式创建索引库 运行完这个命令之后的结果  不是很美观

所以我们有了第二种方式

第二种:

curl -XPUT http://localhost:9200/myindex?pretty  这种方式创建出来显示的看着舒服一些 

二.列出所有索引

curl -XGET http://localhost:9200/_cat/indices?v

三.插入数据

curl -H "Content-Type: application/json" -XPUT http://localhost:9200/myindex/product/p1 -d '

{ "name":"mac",

"price":20000,

"description":"苹果笔记本",

"attr":["computer","高端"]

}'

请记住_index,_type,_id三者唯一确定一个文档,所以要想保证文档是新加入的,最简单的方式是使用POST方法让ES自动生成唯一_id 如果想使用自定义的_id,

必须告诉ES应该在_index,_type,_id三者都不同时才接受请求。为了做到这点有两种方法:

(1)第一种方法使用op_type查询参数: PUT /website/index/type/id?op_type=create\&pretty

(2)第二种方法是在URL后加/_create作为端点: PUT /website/index/type/id/_create?pretty

四.查询数据

curl -XGET http://localhost:9200/myindex/product/p1?pretty

通常,GET请求将返回文档的全部,存储在_source参数中。但是可能你感兴趣的字段只是title。

请求个别字段可以使用_source参数。

多个字段可以使用逗号分隔: curl -XGET http://localhost:9200/myindex/product/p1?_source=name,price\&pretty

你也可以禁掉source,只要设置_source=false即可 curl -XGET http://localhost:9200/myindex/product/p1?pretty\&_source=false

如果不写type,可以用_all来代替,表示在所有的type中选取 如果你只想获取source中的一部分内容,还可以用_source_include

或者_source_exclude来包含或者过滤其中的某些字段 curl -XGET http://localhost:9200/myindex/product/p1?_source_exclude=name,price

 

也可以使用fields来选择source中的字段,如:curl -XGET curl -XGET http://localhost:9200/myindex/product/p1?fields=name,price

(6版本不再支持) 注意:从返回值可以看出,返回的字段是数组类型的,因此只有基本类型的字段可以从fields中进行查询,

对象数据时不生效的。 如果只想获取文档的内容,可以直接指定_source,例如: curl -XGET http://localhost:9200/myindex/product/p1/_source?pretty

照样可以使用前面讲的方式来获取相应字段的数据

五.修改数据

curl -H "Content-Type: application/json" -XPOST

http://localhost:9200/myindex/product/p1/_update?pretty

-d '{ "doc":{

"name":"新版Mac",

"price":15200 }

}'

ES可以在操作中指定version参数,如: curl -H "Content-Type: application/json" -XPOST http://localhost:9200/myindex/product/p1/_update?

version=4 -d '{ "doc":

{ "name":"新版Mac222",

"price":15200 }

}'

Tip:版本必须匹配

六.删除数据

删除数据 curl -XDELETE

http://localhost:9200/myindex/product/p1?pretty

删除一个文档也不会立即从磁盘上移除,它只是被标记成已删除。

ES将会在你之后添加更多索引的时候才会在后台进行删除内容的清理。

删除索引

curl -XDELETE http://localhost:9200/indexwb2?pretty

七.简单查询

简单查询 curl -XGET

'http://localhost:9200/myindex/product/_search?q=name:mac第四次&q=price:20000&pretty'

分页 curl -XGET

'http://localhost:9200/blog/blog/_search?size=2&from=0&pretty'

 

 

 

 

posted @ 2018-07-23 17:38  风骚少年  阅读(597)  评论(0编辑  收藏  举报
AmazingCounters.com