首页 > 系统相关 >ES搜索框架--Windows下简单使用ES框架

ES搜索框架--Windows下简单使用ES框架

时间:2023-04-08 16:47:11浏览次数:49  
标签:http 框架 -- 8088 cluster localhost 分片 ES

前面讲述了什么是ES框架和为什么要用ES框架进行检索,现在开始尝试在windows下安装并简单使用ES框架

参考:官方文档中文版英文版

linux下部署:https://www.elastic.co/guide/en/elasticsearch/reference/6.0/_installation.html


一、安装

1.下载解压安装包

官网选择相应版本进行下载zip包,在英文路径下解压即可,这里我使用的是8.0.0版本

image


2.修改配置文件(可选)

(当然可以尝试直接进行3点击启动,以下是个人为了方便以及相关报错经验进行的修改)

修改图中yml文件,主要修改(或解除注释)以下字段(不同版本可能不一样,不过主要就是访问地址和安全验证的问题):

node.name: ES  #自行设置的节点名字

network.host: localhost  #可访问的地址

http.port: 8088  #避开使用中的端口

xpack.security.enabled: false

xpack.security.enrollment.enabled: false

xpack.security.http.ssl:
   enabled: false

xpack.security.transport.ssl:
   enabled: false

#以上几个都是可选,但是这个ssl需要注意,将true改为false,否则当使用localhost:8088进行访问时会报错”在 https 通道上接收到明文 http 流量,关闭连接 Netty4HttpChannel”,而如果改成https://localhost:8088,则会证书不受信任等,所以我的解决方式是直接关掉ssl验证。

然后其他的security改为false都是为了不输入账号密码直接进行访问而设置的,因为这个还只是为了测试,没有安全性的要求,如果需要设置账号密码可以参考或自行搜索。

image

image


3.启动ES

修改完配置文件后,可以直接点击bin文件夹中的elasticsearch.bat文件,最终显示started即为成功

image


4.验证

(1)浏览器访问

浏览器直接访问localhost:8088

image


(2)curl访问(可选)

下载curl源码zip,解压后直接在命令行输入:curl http://localhost:8088/?pretty

(cURL 给你提供了一种将请求提交到 Elasticsearch 的便捷方式,并且安装 cURL 之后,你可以通过复制与粘贴去尝试书中的许多例子。)

image

image

这就意味着你现在已经启动并运行一个 Elasticsearch 节点了,你可以用它做实验了。 单个 节点 可以作为一个运行中的 Elasticsearch 的实例。 而一个 集群 是一组拥有相同 cluster.name 的节点, 他们能一起工作并共享数据,还提供容错与可伸缩性。(当然,一个单独的节点也可以组成一个集群) 你可以在 elasticsearch.yml 配置文件中 修改 cluster.name ,该文件会在节点启动时加载 (这个重启服务后才会生效)。



二、简单使用

1.方式

Java等语言客户端、web浏览器(Sense客户端)、curl命令

下面主要介绍发送http请求直接访问的方式

例:

统计集群文档个数:

curl -XGET "localhost:8088/_count?pretty"

image

查看集群健康状态:

curl -XGET http://localhost:8088/_cluster/health?pretty

image

(对应可使用接口测试软件发送请求或接收数据)

image

Red,表示有主分片没有分配,某些数据不可用。

Yellow,表示主分片都已分配,数据都可用,但是有复制分片没有分配。

Green,表示主分片和复制分片都已分配,一切正常。


2.示例

(1)修改最高可占用磁盘空间

由于es安装在windows本地,因此其占用的是本地磁盘空间,在尝试创建索引时发现总是无法创建成功,提示主分片未激活等等,搜索思考后大概明白是为什么了:

由于是单节点,我也没有设置主节点,当本结点磁盘占用过高时,es尝试找到其他结点进行数据存储,就发现找不到其他结点了。(我安装在D盘,而D盘占用超过90%,默认高水位应该是90%)

解决:修改高水位值

PUT http://localhost:8088/_cluster/settings

{
  "transient": {
    "cluster.routing.allocation.disk.watermark.low": "85%",
    "cluster.routing.allocation.disk.watermark.high": "98%",
    "cluster.routing.allocation.disk.watermark.flood_stage": "99%",
    "cluster.info.update.interval": "1m"
  }
}

cluster.routing.allocation.disk.watermark.low:控制磁盘使用的低水位。默认为85%,意味着如果节点磁盘使用超过85%,则ES不允许在分配新的分片。当配置具体的大小如100MB时,表示如果磁盘空间小于100MB不允许分配分片。

cluster.routing.allocation.disk.watermark.high:控制磁盘使用的高水位。默认为90%,意味着如果磁盘空间使用高于90%时,ES将尝试分配分片到其他节点。

image


(2)创建文本(megacorp为索引名称,_create为类型名称)

将文本添加后会为其创建索引

PUT http://localhost:8088/megacorp/_create/1

{
    "first_name" : "John",
    "last_name" :  "Smith",
    "age" :        25,
    "about" :      "I love to go rock climbing",
    "interests": [ "sports", "music" ]
}

image

增加更多的员工信息到目录中(注意修改路径上的id,然后自行添加or参考文档

image


(3)查看索引(类型为_doc)

GET http://localhost:8088/megacorp/_doc/3

image

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


(4)查看所有雇员

GET http://localhost:8088/megacorp/_search

image

可以看到,我们仍然使用索引库 megacorp ,但与指定一个文档 ID 不同,这次使用 _search 。返回结果包括了所有三个文档,放在数组 hits 中。一个搜索默认返回十条结果。


剩下的可以参照官方文档教程,写的还是很详细的,大概格式就是以上,由于版本比较老,一些地方会不一样(比如ES7.4后不再支持自定义索引类型),基本修改上面都有了,主要是类型不能自定义employee了。后续会发布Java API的相关操作。image

image


标签:http,框架,--,8088,cluster,localhost,分片,ES
From: https://www.cnblogs.com/Studywith/p/17298744.html

相关文章

  • 当用 SA 来建后缀树
    因为学不会什么串串技术,所以我只会SA,至于SAM啥的我一窍不通,而后缀树也只知道定义!所以别和我说Ukkonen算法,因为我不会。以下假设原串\(\text{S}\)长度为\(n\),我们在后缀数组\(\text{SA}\)开头插入一个空串,用\(\text{H}\)数组(好像通常叫做\(\text{height}\)数组?)表示......
  • ES搜索框架--ES部署到Centos8服务器
    参考:https://blog.csdn.net/Me_xuan/article/details/114608076https://www.cnblogs.com/chenxitag/p/12320868.html一、下载安装1.下载ES使用elasticsearch7.10.2,到官网下载对应的linux包,然后上传到服务器文件夹下,cd到文件夹后使用tar命令解压tar-xvfelasticsearch-7.10.2-linu......
  • 股票买卖模型
    股票买卖模型题目描述给定一个长度为\(N\)的数组,数组中的第\(i\)个数字表示一个给定股票在第\(i\)天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。输入格式第一行包含整数\(N......
  • mac m1安装stable-diffusion-webui
    1.准备安装环境[email protected]下载stable-diffusion-webuigitclonehttps://github.com/AUTOMATIC1111/stable-diffusion-webui.git3.下载huggingface模型https://huggingface.co/runwayml/stable-diffusi......
  • 【AIGC未来的发展方向】面向人工智能的第一步,一文告诉你人工智能是什么以及未来的方向
    人工智能的概念当人们提到“人工智能(AI)”时,很多人会想到机器人和未来世界的科幻场景,但AI的应用远远不止于此。现在,AI已经广泛应用于各种行业和生活领域,为我们带来了无限可能。AI是一个广泛的概念,它包括很多不同的技术,例如机器学习、深度学习、自然语言处理等等。这些技术都具有......
  • Retrofit 的基本用法
    一、添加依赖和网络权限添加依赖implementation'com.squareup.retrofit2:retrofit:2.9.0'implementation'com.squareup.retrofit2:converter-gson:2.9.0'//可选implementation'com.squareup.okhttp3:logging-interceptor:4.9.3'第一条依赖是下载Retrofit、Ok......
  • JavaScript 中使用正则表达式的方法
    目录使用方法常见的使用方法test()exec()match()replace()split()使用方法在JavaScript中,正则表达式可以用字面量语法创建。字面量语法是一种非常简单直观的表示正则表达式的方式。它使用两个斜杠(/)括起来,如下所示:constregex=/pattern/;例如,要匹配字母a和b之间的所有字......
  • tryhackem_wonderland
    涉及,解密,扫描,横向移动,纵向移动仙境掉进兔子洞,进入仙境。获得shell解法一:目录扫描ffuf-uhttp://10.10.134.189/FUZZ-w/usr/share/wordlists/dirbuster/directory-list-2.3-small.txt-cffuf-uhttp://10.10.134.189/r/FUZZ-w/usr/share/wordlists/dirbuster/directo......
  • 神经网络简介
    神经网络是一种类似于人脑神经元网络的计算模型,可以处理复杂的非线性问题,如图像识别、语音识别、自然语言处理等。本文将简要介绍神经网络的基本概念、类型和应用。一、基本概念神经元:神经网络的基本单元,类比于人脑中的神经元。它接收一组输入,进行一些计算,并产生一个输出。输......
  • mac python 安装mysqlclient的问题
    问题1: 无法安装mysqlclient报错信息:   解决方法:1. 安装mysql-clientbrewinstallmysql-client2、配置环境变量vi~/.bash_profileexportPATH=/opt/homebrew/opt/mysql-client/bin:$PATHsource~/.bash_profile3、安装mysqlclientpipinsta......