Windows使用(版本8.11)ElasticSearch、elasticsearch-head、kibana

下载安装引用这篇文章

目录

      • 1、ES基本知识
        • 核心术语
        • 核心概念
        • 倒排索引
        • ES字典树
        • ES怎么保证读写一致
      • 2、Window启动ES步骤
        • elasticsearch-8.11.3
        • elasticsearch-head-master
        • kibana-8.11.3
      • 3、Kibana 调用ES API示例

1、ES基本知识

核心术语

● 索引:index (相当于表)
● 类型:type (相当于表逻辑类型),早版本有类型
● 文档:document (相当于数据库表的行)
● 字段:fields(相当于数据库表列)

核心概念

● 映射:mapping (相当于表结构后定义)
● 近实时:NRT (Near real time)
● 节点:node (每一个服务器)
● shard replica (数据分片与备份)

倒排索引

倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和包含该属性值的各个记录地址。由于不是根据记录来确定属性,而是根据属性来确定记录的位置,所以称之为倒排索引。倒排索引改会在存储数据时将关键词和数据进行关联,保存到倒排表中,然后查询是,将查询内容进行分词后在倒排中进行查询,最后匹配数据即可

ES字典树

字典树又称单词查找树,Trie树,是一种树形结构,是一种哈系树的变种。典型应用于统计,排序和保存大量的字符串。
优点:利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。
3个基本性质:
a. 根节点不包含字符,除根节点外每一个节点都只包含一个字符。
b. 从根节点到某一节点,路径上经过的字符串连接起来,为改节点对应的字符串
c. 每一个节点的所有子节点包含的字符串都不相同。

ES怎么保证读写一致
  1. 更新操作:可以通过版本号使用乐观并发控制,以确保新版本不会被旧版本覆盖

每个文档都有一个_version 版本号,这个版本号在文档被改变时加一。Elasticsearch使用这个 _version 保证所有修改都被正确排序,当一个旧版本出现在新版本之后,它会被简单的忽略。利用_version的这一优点确保数据不会因为修改冲突而丢失,比如指定文档的version来做更改,如果那个版本号不是现在的,我们的请求就失败了。

  1. 新增操作:一致性级别支持 quorum/one/all,默认为 quorum,即只有当大多数分片可用时才允许写操作。但即使大多数可用,也可能存在因为网络等原因导致写入副本失败,这样该副本被认为故障,副本将会在一个不同的节点上重建。

● one:写操作只要有一个primary shard是active活跃可用的,就可以执行
● all:写操作必须所有的primary shard和replica shard都是活跃可用的,才可以执行
● quorum:默认值,要求ES中大部分的shard是活跃可用的,才可以执行写操作

  1. 查询读操作:可以设置 replication 为 sync(默认),这使得操作在主分片和副本分片都完成后才会返回;如果设置replication 为 async 时,也可以通过设置搜索请求参数 _preference 为 primary 来查询主分片,确保文档是最新版本

2、Window启动ES步骤

在这里插入图片描述

elasticsearch-8.11.3

1、elasticSearch.bat启动ES
在这里插入图片描述
2、浏览器输入地址:http://localhost:9200/ 出入如下启动成功!
在这里插入图片描述
3、IK分词器放在如下路径
在这里插入图片描述
在这里插入图片描述

elasticsearch-head-master

1、使用npm 启动该项目
2、在如下路径下执行 npm run start
在这里插入图片描述
在这里插入图片描述
3、访问http://localhost:9100 启动成功
在这里插入图片描述

kibana-8.11.3

1、kibana.bat 启动
在这里插入图片描述
2、package.json 修改版本号与ES一致
在这里插入图片描述
在这里插入图片描述
3、访问地址:http://localhost:5601/app/dev_tools#/console 启动成功
在这里插入图片描述
在这里插入图片描述

3、Kibana 调用ES API示例

# ik_smart分词
GET /_analyze
{
    "analyzer":"ik_smart",
    "text":"我爱你,特靠谱"
}


#测试ik_max_word分词
GET /_analyze
{
    "analyzer":"ik_max_word",
    "text":"我爱你,特靠谱"
}

#新建索引
PUT helloes
{
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 2
  }
}

#查看指定索引信息
GET /helloes

# 查看所有索引信息
GET *

# 删除索引
delete /helloes

#查看索引是否存在
HEAD /helloes

# 创建映射字段(PUT /索引库名/_mapping/类型名称)
PUT /helloes/_mapping
{
    "properties": {
    "title": {
      "type": "text",
      "analyzer": "ik_smart"

    },
    "images": {
      "type": "keyword",
      "index": "false"
    },
    "price": {
      "type": "float"
    }
  }
}

#查看映射关系
GET /helloes/_mapping

#创建文档
POST /helloes/_doc
{ 
 "title":"小米手机",
    "category":"小米",
    "images":"http://www.gulixueyuan.com/xm.jpg",
    "price":3999.00
}

#创建文档自定义ID
POST /helloes/_doc/1
{ 
 "title":"小米手机",
    "category":"小米",
    "images":"http://www.gulixueyuan.com/xm.jpg",
    "price":3999.00
}

# 文档查询
GET /helloes/_doc/1


#搜索当前索引下所有数据
GET /helloes/_search

# 删除文档
DELETE /helloes/_doc/1

#文档修改 (数据不存在则新增)
POST /helloes/_doc/1
{
  "title":"华为手机2",
    "category":"华为",
    "images":"http://www.gulixueyuan.com/hw.jpg",
    "price":1999.00
}

#修改局部信息
POST /helloes/_update/1
{
  "doc": {
     "title":"小米手机",
  "category":"小米"
  }
}


#URL拼接条件查询
GET /helloes/_search?q=category:小米

# JSON 格式查询(全文检索)
 GET /helloes/_search
 {
   "query": {
     "match": {
       "category": "小"
     }
   }
 }

# JSON请求提查询所有数据
GET /helloes/_search
{
  "query": {
    "match_all": {}
  }
}

# 查询返回指定字段
GET /helloes/_search
{
  "query": {
    "match_all": {}
  },
  "_source": ["title"]
}

# 分页查找 from:页码, size:页面调试
GET /helloes/_search
{
  "query": {
    "match_all": {}
  },
  "from": 0,
  "size": 20
}


#查询排序
GET /helloes/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "price": {
        "order": "desc"
      }
    }
  ]
}

# 多条件查询
GET /helloes/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "title": "小米"
          }
        },{
          "match": {
            "price": "1999"
          }
        }
      ]
    }
  }
}

# 值完全匹配
GET /helloes/_search
{
  "query": {
    "match_phrase": {
      "title": "小米"
    }
  }
}


# 高亮查询
GET /helloes/_search
{
  "query": {
    "match_phrase": {
      "category": "米"
    }
  },
  "highlight": {
    "fields": {
      "category": {}//<----高亮这字段
    }
  }
}

#分组查询
GET /helloes/_search
{
 "aggs":{//聚合操作
  "price_group":{//名称,随意起名
   "terms":{//分组
    "field":"price"//分组字段
   }
  }
 }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/314654.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

centos 7.6 忘记root密码 怎么重置root密码

centos 7.6 忘记root密码 怎么重置root密码 1、 问题描述2、解决方法 1、 问题描述 centos 7.6 忘记root密码&#xff0c;登录不了root用户 2、解决方法 启动系统进入grub界面&#xff0c;按e进入编辑模式&#xff0c;找到含有quiet的这行。在这行最后 添加 rw init/bin/ba…

基础数据结构之堆栈

堆栈的定义、入栈、出栈、查询栈顶 #include <stdio.h> #include <stdlib.h>typedef int DataType;// 定义栈节点结构体 struct StackNode;struct StackNode {DataType data; // 节点数据struct StackNode* next; // 指向下一个节点的指针 };// 定…

Python基础知识:整理12 JSON数据格式的转换

首先导入python中的内置包json import json 1 准备一个列表&#xff0c;列表内每个元素都是字典&#xff0c;将其转换为JSON 使用json.dumps()方法 data [{"name": "John", "age": 30}, {"name": "Jane", "age":…

NAND系统性能提升常见方案

随着NAND的发展&#xff0c;针对NAND系统性能提升&#xff0c;业内目前主要的做法有以下几种方案&#xff1a; 1.提升总线频率和优化AC时序&#xff1a; 提高NAND闪存接口的工作频率可以显著加快数据传输速度。通过不断改进工艺和技术&#xff0c;缩短了信号稳定时间、降低了延…

逆向分析爬取网页动态

本例子以爬取人民邮电出版社网页新书的信息为例 由于页面是动态的&#xff0c;信息会不停地更新&#xff0c;所以不同时间的爬取结果会不同。

Selenium+Remote WebDriver+python脚本访问示例

一、环境要求&#xff1a; 1、selenium-server安装&#xff0c;下载地址&#xff1a;Release Selenium 4.16 SeleniumHQ/selenium GitHub 2、python3及pycharm 二、启动selenium-server 下载selenium-server之后&#xff0c;解压到D:\selenium-server目录&#xff0c;然后…

error: undefined reference to ‘cv::imread(std::__ndk1::basic_string<char

使用android studio编译项目时&#xff0c;由于用到了 cv::imread&#xff08;&#xff09;函数&#xff0c;编译时却报错找不到该函数的定义。 cv::imread一般是在highgui.hpp中定义&#xff0c;因此我加上了该头文件&#xff1a; #include “opencv2/highgui/highgui.hpp” 但…

设计模式之六大设计原则

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

Hive 数据同步

一、需求 同步集团的数据到断直连环境。 二、思路 三、同步数据&#xff08;方案&#xff09; 1、环境&#xff1a;断直连模拟环境 2、操作机器&#xff1a;ETL 机器 XX.14.36.216 3、工作路径&#xff1a;cd /usr/local/fqlhadoop/hadoop/bin 4、执行命令&#xff1a; 命令…

GIS真的是天坑专业吗?

是&#xff0c;也不是。 首先说是&#xff0c;GIS到底坑在哪&#xff1f; 1、专业定位不清晰&#xff0c;具有很强的误导性 听过很多学生抱怨&#xff0c;关于GIS专业&#xff0c;大家觉得最坑的地方&#xff0c;在于一开始在选专业的时候&#xff0c;以为这个专业跟计算机专…

如何判断 vite 的运行环境是开发模式还是生产模式 production? development?

如何判断 vite 的运行环境是开发模式还是生产模式 production&#xff1f; development&#xff1f; vite 有两种获取当前运行环境模式的方法&#xff1a; 官方说明&#xff1a; 完整说明地址&#xff1a; https://cn.vitejs.dev/guide/env-and-mode.html#node-env-and-modes…

【LangChain学习之旅】—(6) 提示工程(下):用思维链和思维树提升模型思考质量

【LangChain学习之旅】—&#xff08;6&#xff09; 提示工程&#xff08;下&#xff09;&#xff1a;用思维链和思维树提升模型思考质量 什么是 Chain of ThoughtFew-Shot CoTZero-Shot CoTChain of Thought 实战CoT 的模板设计程序的完整框架Tree of Thought总结 Reference&a…

一阶低通滤波器

一阶低通滤波器 X为输入&#xff0c;Y为滤波后得到的输出值&#xff1b;本次的输出结果主要取决于上次的滤波输出值&#xff0c;其中a是和滤波效果有关的一个参数&#xff0c;称为滤波系数&#xff1b;它决定新采样值在本次滤波结果中所占的权重&#xff1b; 滤波系数a越小&a…

AI绘画软件Stable Diffusion模型/Lora/VAE文件存放位置

型下载说明&#xff08;下载模型后输入对应参数即可生成&#xff09; 建议直接去civitai.com找模型&#xff0c;如果无法找到可以在幕后模型区找也可以去&#xff0c; 下载好后放入对应的文件夹。进入127.0.0.1:7680 左上角刷新即可看到新的模型。 模型种类 大模型 大模型特…

揭秘人工智能:探索智慧未来

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;数据结构、网络奇遇记 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. 什么是人工智能?二. 人工智能的关键技术2.1 机器学习2.2 深度学习2.1 计算机…

【一文详解】知识分享:(C#开发学习快速入门)

面向对象(OOP) c语言是面向过程。 c是面向过程面向对象。 c#是纯粹的面向对象: 核心思想是以人的思维习惯来分析和解决问题。万物皆对象。 面向对象开发步骤: 分析对象 特征行为关系(对象关系/类关系) 写代码: 特征–>成员变量 方法–>成员方法 实例化–具体对象 …

一本数学教材严谨和通俗哪个更重要?

一本教材也许无法同时兼顾严谨和通俗&#xff0c;而且在不同的场景下&#xff0c;严谨和通俗的重要性也不尽相同&#xff1a; 在正式的学术场合&#xff0c;严谨当然重要&#xff0c;一些不严谨的教材可能无法通过审校&#xff0c;在读者存在疑问的时候&#xff0c;也不一定能给…

揭露欧拉骗局4.“Σ1/n²=π²/6”里的猫腻

自然数平方倒数求和Σ1/n是一个并不复杂的问题&#xff0c;但它困扰了欧洲大陆整整90年&#xff0c;在欧系数学里它被称为“巴塞尔级数”。 解决巴塞尔级数让欧拉一战成名&#xff0c;然而欧拉采用的方法对数学这门学问是严重的侮辱。数学是工具学科&#xff0c;数学的宗旨是化…

apipost 前端使用云端mock实现自定义返回

目录 一.新建接口 1.选择mock环境 2.设置接口路径&#xff0c;以及相关参数 3.自定应响应示例 4.开启云端mock,设置相应条件 5.更改接口类型post,保存设置&#xff0c;发送请求 6.测试 一.新建接口 1.选择mock环境 如图&#xff0c;更改环境 2.设置接口路径&#xff0c…

68.网游逆向分析与插件开发-角色数据的获取-利用蓝量属性分析角色数据基址

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;67.网游逆向分析与插件开发-角色数据的获取-分析角色数据基址-CSDN博客 然后分析任何一个东西&#xff0c;逆向分析的本质就是找东西的意思&#xff0c;找东西核心的观念是内存里得有&#xff0c;就是…