zoukankan      html  css  js  c++  java
  • 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'

     

     

     

     

  • 相关阅读:
    伪元素:placeholder-shown&&:focus-within
    伪元素:target
    伪元素:focus-within
    MpVue解析
    ESLint在vue中的使用
    vue动态 设置类名
    Java 文件流操作.
    SpringMVC 与 REST.
    基于Nginx和Zookeeper实现Dubbo的分布式服务
    基于Spring的RPC通讯模型.
  • 原文地址:https://www.cnblogs.com/1234AAA/p/9355928.html
Copyright © 2011-2022 走看看