ElasticSearch安装、配置与使用

前言

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。本文主要对ES的安装配置与基本使用进行学习总结。

安装

ES官网下载,解压缩即可

在这里插入图片描述

修改配置文件

修改config\jvm.option文件

// 添加如下配置
-Xms340m
-Xmx340m

在这里插入图片描述

修改config\elasticsearch.yml文件

// 添加如下配置
http.cors.enabled: true
http.cors.allow-origin: "*"
network.host: 此处为本地ip

启动

在这里插入图片描述
在这里插入图片描述

浏览器访问

http://127.0.0.1:9200/

  • 访问后可能提示 localhost 未发送任何数据。 ERR_EMPTY_RESPONSE

  • 查看控制台报错:
    received plaintext htp traffic on an https channel, closing connection Netty4HttpChannel
    此报错原因在于是因为开启了 ssl 认证。解决

  • 查看config\elasticsearch.yml

启动后增添了一些默认配置信息,需要将xpack.security.enabled,xpack.security.enrollment.enabled 修改为false,关闭ssl认证
在这里插入图片描述

  • 重新访问,即可成功访问
    在这里插入图片描述

使用

ES 语法

curl ‐X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' ‐d '<BODY>'

在这里插入图片描述

创建索引

// method
PUT
// url
http://ip:9200/indexName
// body
{
    
    
  "mappings": {
    
    
    "properties": {
    
    
      "id": {
    
    
        "type": "long",
        "store": true,
        "index": false
      },
      "title": {
    
    
        "type": "text",
        "store": true,
        "index": true,
        "analyzer": "standard"
      },
      "content": {
    
    
        "type": "text",
        "store": true,
        "index": true,
        "analyzer": "standard"
      }
    }
  }
}

在这里插入图片描述

删除索引

// method
DELETE
// url
http://ip:9200/indexName
// body
null

在这里插入图片描述

上传文档

上传文档–不指定id

// method
PUT
// url
http://ip:9200/indexName/_doc
// body
// 文档内容

在这里插入图片描述

上传文档–指定id

// method
PUT
// url
http://ip:9200/indexName/_doc/id
// body
// 文档内容

在这里插入图片描述

查询文档

基础查询

  • 查询内容
// GET获取所有详细信息,包括我们存储在ES中的字段数据和文档的元数据
// _doc表示默认返回所有信息
GET <index>/_doc/<_id>
// _source表示只返回字段数据
GET <index>/_source/<_id>

// HEAD 用于查询文档是否存在
// _doc表示默认返回所有信息
HEAD <index>/_doc/<_id>
// _source表示只返回字段数据
SOURCE <index>/_source/<_id>

在这里插入图片描述
在这里插入图片描述

  • 带参查询
// 不想查询_source部分内容
GET <index>/_doc/<_id>?_source=false

在这里插入图片描述

//_source_includes来设置查询显示哪些字段
GET <index>/_doc/<_id>?_source_includes=filed1,filed2...
GET <index>/_source/<_id>?_source_includes=filed1,filed2...

在这里插入图片描述
在这里插入图片描述

进阶查询

查询所有
  • match_all
POST <index>/_search/
{
    
    
	"query":{
    
    
		"match_all": {
    
    }
	}
}

在这里插入图片描述

  • _source
// _source字段可以设置只显示部分字段
POST <index>/_search/
{
    
    
	"query":{
    
    
		"match_all": {
    
    }
	},
	"_source":["id", "title"]
}

在这里插入图片描述

  • 分页
// from和size参数设置显示哪一步分数据,实现类似于分页的功能
POST <index>/_search/
{
    
    
  "query":{
    
    
    "match_all": {
    
    }
  },
  "from":1,
  "size":2
}

在这里插入图片描述

匹配查询
POST <index>/_search/
{
    
    
  "query":{
    
    
  "match": {
    
    
    "title": {
    
    
      "query":"ES",
      "operator":"or"
    }
  }
}

在这里插入图片描述

词条查询
// 词条查询是专用于精确匹配的一种查询
// 官方提醒,不要将词条匹配用于text类型的字段查询中
POST <index>/_search/
// 单词条查询 term
{
    
    
	"query":{
    
    
		"term":{
    
    
			"id":12
		}
	}
}
// 多词条查询 terms
POST <index>/_search/
// 单词条查询
{
    
    
	"query":{
    
    
		"terms":{
    
    
			"id":12
		}
	}
}

在这里插入图片描述
在这里插入图片描述

范围查询
// 查询是指对数值型、日期等类型字段是否在或不在某个范围内进行查询,用于范围判断的标识包含以下几个
// 	gt: 大于/gte: 大于等于/lt:小于/lte:小于等于
POST <index>/_search/
// 单词条查询
{
    
    
	"query":{
    
    
		"range":{
    
     #range关键字
			"id":{
    
      #字段
				"gte":0, #范围设置
				"lt":10 #范围设置
			}
		}
	}
}

在这里插入图片描述

布尔查询(多条件符合查询)
// 可进行多条件下过滤查询。布尔查询需要结合以下几个条件子句类使用
must:必须满足的条件(类似于SQL中的and)
should:可以满足也可以不满足的条件(类似于SQL中的or)
must_not:不需要满足的条件(类似于SQL中的not)
// 进一步的,可以在上述三个查询子句的基础上,配合filter子句对结果进一步过滤。filter子句的有点在于不对结果相关度进行评分,提高查询性能

猜你喜欢

转载自blog.csdn.net/qq_34577234/article/details/125215163