elasticsearch官方文档

一、安装Elasticsearch

  • 1.查询Elasticsearch镜像
[root@localhost zwj]# docker search elasticsearch
INDEX       NAME                                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/elasticsearch                         Elasticsearch is a powerful open source se...   3147      [OK]       
docker.io   docker.io/kibana                                Kibana gives shape to any kind of data — s...   1278      [OK]       
docker.io   docker.io/nshou/elasticsearch-kibana            Elasticsearch-6.3.1 Kibana-6.3.1                88                   [OK]
docker.io   docker.io/itzg/elasticsearch                    Provides an easily configurable Elasticsea...   67                   [OK]
docker.io   docker.io/mobz/elasticsearch-head               elasticsearch-head front-end and standalon...   36                   
docker.io   docker.io/kubernetes/fluentd-elasticsearch      An image that ingests Docker container log...   25                   
docker.io   docker.io/lmenezes/elasticsearch-kopf           elasticsearch kopf                              17                   [OK]
docker.io   docker.io/tutum/elasticsearch                   Elasticsearch image - listens in port 9200.     16                   [OK]
docker.io   docker.io/bitnami/elasticsearch                 Bitnami Docker Image for Elasticsearch          12                   [OK]
docker.io   docker.io/monsantoco/elasticsearch              ElasticSearch Docker image                      11                   [OK]
docker.io   docker.io/mesoscloud/elasticsearch              [UNMAINTAINED] Elasticsearch                    9                    [OK]
docker.io   docker.io/taskrabbit/elasticsearch-dump         Import and export tools for elasticsearch       9                    [OK]
docker.io   docker.io/justwatch/elasticsearch_exporter      Elasticsearch stats exporter for Prometheus     8                    
docker.io   docker.io/blacktop/elasticsearch                Alpine Linux based Elasticsearch Docker Image   5                    [OK]
docker.io   docker.io/centerforopenscience/elasticsearch    Elasticsearch                                   3                    [OK]
docker.io   docker.io/frodenas/elasticsearch                A Docker Image for Elasticsearch                3                    [OK]
docker.io   docker.io/barchart/elasticsearch-aws            Elasticsearch AWS node                          2                    
docker.io   docker.io/jetstack/elasticsearch-pet            An elasticsearch image for kubernetes PetSets   1                    [OK]
docker.io   docker.io/phenompeople/elasticsearch            Elasticsearch is a powerful open source se...   1                    [OK]
docker.io   docker.io/thingswise/elasticsearch              Elasticsearch + etcd2 peer discovery            1                    [OK]
docker.io   docker.io/18fgsa/elasticsearch                  Built from https://github.com/docker-libra...   0                    
docker.io   docker.io/backplane/elasticsearch-curator       Elasticsearch Curator (https://github.com/...   0                    
docker.io   docker.io/driveclutch/infra-elasticsearch-aws   Elasticsearch Docker for use in AWS             0                    [OK]
docker.io   docker.io/forkdelta/fluentd-elasticsearch       fluent/fluentd with fluent-plugin-elastics...   0                    [OK]
docker.io   docker.io/wreulicke/elasticsearch               elasticsearch                                   0                    [OK]
  • 2.加速安装Elasticsearch镜像
[root@localhost zwj]# docker pull registry.docker-cn.com/library/elasticsearch
  • 3.启动Elasticsearch
[root@localhost zwj]# docker images
REPOSITORY                                     TAG                 IMAGE ID            CREATED             SIZE
registry.docker-cn.com/library/elasticsearch   latest              5acf0e8da90b        5 weeks ago         486 MB
[root@localhost zwj]# docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES01 5acf0e8da90b
bb4f65ab4f3a8920ce7ed605d1d1767f6856f1fdc7154b333a3d19bc6886e526

二、测试Elasticsearch

测试地址:主机地址:9200

《Elasticsearch 权威指南》中文版

使用Postman测试,Postman下载地址

1、索引文档

对于雇员目录,我们将做如下操作:

  • 每个雇员索引一个文档,包含该雇员的所有信息。
  • 每个文档都将是 employee 类型
  • 该类型位于 索引 megacorp 内。
  • 该索引保存在我们的 Elasticsearch 集群中。
//megacorp 索引名称
//employee 类型名称
//1 特定雇员的ID
PUT /megacorp/employee/1 
{ 
    "first_name" : "John", 
    "last_name" : "Smith", 
    "age" : 25, 
    "about" : "I love to go rock climbing", 
    "interests": [ "sports", "music" ] 
}

PUT /megacorp/employee/2
{
    "first_name" :  "Jane",
    "last_name" :   "Smith",
    "age" :         32,
    "about" :       "I like to collect rock albums",
    "interests":  [ "music" ]
}

PUT /megacorp/employee/3
{
    "first_name" :  "Douglas",
    "last_name" :   "Fir",
    "age" :         35,
    "about":        "I like to build cabinets",
    "interests":  [ "forestry" ]
}

用同样的步骤索引三个雇员文档

2、检索文档

目前我们已经在 Elasticsearch 中存储了一些数据, 接下来就能专注于实现应用的业务需求了。第一个需求是可以检索到单个雇员的数据。这在 Elasticsearch 中很简单。简单地执行 一个 HTTP GET 请求并指定文档的地址——索引库、类型和ID。 使用这三个信息可以返回原始的 JSON 文档:

3、删除文档

4、检测是否存在这个文档

5、修改文档

将 HTTP 命令由 PUT 改为 GET 可以用来检索文档,同样的,可以使用 DELETE 命令来删除文档,以及使用 HEAD 指令来检查文档是否存在。如果想更新已存在的文档,只需再次 PUT

6、轻量搜索

一个 GET 是相当简单的,可以直接得到指定的文档。 现在尝试点儿稍微高级的功能,比如一个简单的搜索!第一个尝试的几乎是最简单的搜索了。我们使用下列请求来搜索所有雇员:

7、查询字符串 (_query-string_) 搜索

接下来,尝试下搜索姓氏为 ``Smith`` 的雇员。为此,我们将使用一个高亮 搜索,很容易通过命令行完成。这个方法一般涉及到一个 查询字符串 (_query-string_) 搜索,因为我们通过一个URL参数来传递查询信息给搜索接口:

8、使用查询表达式搜索

Query-string 搜索通过命令非常方便地进行临时性的即席搜索 ,但它有自身的局限性(参见 轻量 搜索 )。Elasticsearch 提供一个丰富灵活的查询语言叫做 查询表达式 , 它支持构建更加复杂和健壮的查询。领域特定语言 (DSL), 指定了使用一个 JSON 请求。我们可以像这样重写之前的查询所有 Smith 的搜索 :

9、更复杂的搜索

现在尝试下更复杂的搜索。 同样搜索姓氏为 Smith 的雇员,但这次我们只需要年龄大于 30 的。查询需要稍作调整,使用过滤器 filter ,它支持高效地执行一个结构化查询。

10、全文搜索

截止目前的搜索相对都很简单:单个姓名,通过年龄过滤。现在尝试下稍微高级点儿的全文搜索——一项 传统数据库确实很难搞定的任务。搜索下所有喜欢攀岩(rock climbing)的雇员:

11、短语搜索

找出一个属性中的独立单词是没有问题的,但有时候想要精确匹配一系列单词或者短语 。 比如, 我们想执行这样一个查询,仅匹配同时包含 “rock” “climbing” ,并且 二者以短语 “rock climbing” 的形式紧挨着的雇员记录。为此对 match 查询稍作调整,使用一个叫做 match_phrase 的查询:

12、高亮搜索

许多应用都倾向于在每个搜索结果中 高亮 部分文本片段,以便让用户知道为何该文档符合查询条件。在 Elasticsearch 中检索出高亮片段也很容易。再次执行前面的查询,并增加一个新的 highlight 参数:

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐