ElasticSearch-全文检索

2023-05-16

  1. docker 下载安装
    #es镜像
    docker pull elasticsearch:7.4.2   
    
    #es的可视化工具
    docker pull kibana:7.4.2
    
    mkdir -p /mydata/elasticsearch/config 
    
    mkdir -p /mydata/elasticsearch/data
    
    echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
    
    
    chmod -R 777 /mydata/elasticsearch/
    
    
    #配置并启动es
    docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
    -e "discovery.type=single-node" \
    -e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
    -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
    -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
    -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
    -d elasticsearch:7.4.2
    
    
    #配置并启动kibana 
    docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.66.141:9200 -p 5601:5601 \
    -d kibana:7.4.2
  2.  全部启动成功后,访问ES,如果出现如下页面,表示启动成功:


    访问kibana,出现如下界面,也是启动成功       
  3. 初步检索

    1、_cat

    GET /_cat/nodes:查看所有节点

    GET /_cat/health:查看 es 健康状况

    GET /_cat/master:查看主节点

    GET /_cat/indices:查看所有索引 show databases
     

    2、索引一个文档(保存)

    保存一个数据,保存在哪个索引的哪个类型下,指定用哪个唯一标识

    PUT customer/external/1;在 customer 索引下的 external 类型下保存 1 号数据为
    {"name": "John Doe"}

    PUT 和 POST 都可以,

    POST 新增。如果不指定 id,会自动生成 id。指定 id 就会修改这个数据,并新增版本号

    PUT 可以新增可以修改。PUT 必须指定 id;由于 PUT 需要指定 id,我们一般都用来做修改操作,不指定 id 会报错。

    3、查询文档

    GET customer/external/1

    结果:

    {

    "_index": "customer",                 //在哪个索引

    "_type": "external",                     //在哪个类型

    "_id": "1",                                       //记录 id

    "_version": 2,                                 //版本号

    "_seq_no": 1,                                 //并发控制字段,每次更新就会+1,用来做乐观锁

    "_primary_term": 1,                     //同上,主分片重新分配,如重启,就会变化

    "found": true,

    "_source": {                                   //真正的内容

    "name": "John Doe"

    }

    }

    更新携带 ?if_seq_no=0&if_primary_term=1 

    4、更新文档

    POST customer/external/1/_update

    {

    "doc":{

    "name": "John Doew"

    }

    }

    或者

    POST customer/external/1

    {

    "name": "John Doe2"

    }

    或者

    PUT customer/external/1

    {

    "name": "John Doe"

    }

    l 不同:POST 操作会对比源文档数据,如果相同不会有什么操作,文档 version 不增加

    PUT 操作总会将数据重新保存并增加 version 版本;带_update 对比元数据如果一样就不进行任何操作。

    看场景;

    对于大并发更新,不带 update;对于大并发查询偶尔更新,带 update;对比更新,重新计算分配规则。

    l 更新同时增加属性

    POST customer/external/1/_update

    {

    "doc": { "name": "Jane Doe", "age": 20 }

    }

    PUT 和 POST 不带_update 也可以

    5、删除文档&索引

    DELETE customer/external/1

    DELETE customer

    6、bulk 批量 API

    POST customer/external/_bulk

    {"index":{"_id":"1"}}

    {"name": "John Doe" }

    {"index":{"_id":"2"}}

    {"name": "Jane Doe" }

    语法格式:

    { action: { metadata }}\n

    { request body                   }\n

    { action: { metadata }}\n

    { request body                   }\n

    复杂实例:

    POST /_bulk

    { "delete": { "_index": "website", "_type": "blog", "_id": "123" }}

    { "create": { "_index": "website", "_type": "blog", "_id": "123" }}

    {  "title":            "My first blog post" }

    { "index":     { "_index": "website", "_type": "blog" }}

    { "title":          "My second blog post" }

    { "update": { "_index": "website", "_type": "blog", "_id": "123", "_retry_on_conflict" : 3} }

    { "doc" : {"title" : "My updated blog post"} }

    bulk API 以此按顺序执行所有的 action(动作)。如果一个单个的动作因任何原因而失败,它将继续处理它后面剩余的动作。当 bulk API 返回时,它将提供每个动作的状态(与发送的顺序相同),所以您可以检查是否一个指定的动作是不是失败了

    7、在kibana中导入测试样本数据

    指令:POST bank/account/_bulk

    测试数据地址:es测试数据.json · 坐看云起时/common_content - Gitee.com

    ​​​​​​​
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ElasticSearch-全文检索 的相关文章

  • 更新后报错

    更新后 xff0c 运行程序就报这个错 no required module provides package xxx go mod file not found in current directory or any parent dir
  • go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘

    go go mod file not found in current directory or any parent directory see go help modules 此时还需要初始化Go moudle go mod init
  • vc++ 6.0bug C1853

    c documents and settingsstudent桌面musicplayermaindlg cpp 1 fatal error C1853 Debug MusicPlayer pch is not a precompiled h
  • 人工智能知识点汇总

    一 AI应用领域 AI目前主要的应用领域有3个方向 xff0c 包括 xff1a 计算机视觉 语音交互 自然语言处理 1 1 计算机视觉 xff08 CV xff09 计算机视觉是一门研究如何使机器 看 的科学 xff0c 就是指用摄影机和
  • Java17(291)之后 , 禁用了TLS1.1 , 使JDBC无法用SSL连接SqlServer怎么办,以下是解决办法

    修改java security文件 1 找到jre的java security文件 2 打开java security并搜索 jdk tls disabledAlgorithms 61 3 删掉TLSv1 TLSv1 1 4 保存 可以了
  • NumPy、Torch和Tensorflow 代码对比

    深度学习 在深入学习的基本单位上实施初级到高级操作 gt Excerpts 我习惯于为不同的问题创建新的深度学习架构 xff0c 但选择哪个框架 xff08 Keras Pytorch TensorFlow xff09 通常比较困难 由于其
  • 2023年 机器学习常用算法

    01 线性回归 线性回归 xff08 Linear Regression xff09 可能是最流行的机器学习算法 线性回归就是要找一条直线 xff0c 并且让这条直线尽可能地拟合散点图中的数据点 它试图通过将直线方程与该数据拟合来表示自变量
  • STM32上SPI+DMA实现大批量读取flash数据

    最近做项目需要使用SPI 43 DMA xff0c 为了做实验感受DMA传输数据块 xff0c 本人以SPI 43 DMA来读取flash中的数据 网上有很多例程是spi直接读取flash xff0c 无法提高性能 因为只是简单的实验SPI
  • stm32通用定时器1s延时实现LED闪烁

    stm32有很多定时器 xff0c 每种定时器的功能也不尽相同 xff0c 今天学习了如何用通用定时器实现1s延时 xff0c 使LED灯闪烁 xff0c 现总结如下 xff1a 步骤总结 xff1a 使能定时器时钟 gt 配置定时器结构体
  • JDK 中使用js调用java类、方法

    最近研究阅读这个APP 其主要功能就是通过一个个书源 从而实现移动端阅读的体验 比如说某些在线小说阅读网站 会加上相应的广告 从而影响用户阅读体验 于是阅读这个APP就是做了类似净化阅读体验 但是小说阅读网站千千万万 如果去适配每个小说阅读
  • Spring项目在tomcat启动时调用action

    1 实现ServletContextListener接口 添加 64 WebListener注解 2 按照示例写代码 xff1a 第一个是开启时 xff0c 第二个是销毁时
  • ubuntu16.04安装opencv3.4

    参考blog https blog csdn net u013066730 article details 79411767 直接进行 完全没问题 sudo apt get install build essential libgtk2 0
  • 使用switch-case语句输出成绩等级

    问题描述 xff1a 输入一个0 100范围内发分数 xff0c 在不同的等级范围内输出不同的值 xff0c 要求使用switch case控制 0 60 等级为E 60 70 等级为D 70 80 等级为C 80 90 等级为B 90 1
  • 输出图案(六)---输出空心矩形

    输入矩形的宽 xff0c 高 xff0c 输出该空心矩形 xff0c 用 来进行表示 参考代码1 xff1a span class hljs comment include lt stdio h gt span span class hlj
  • C语言中交换两个数的方法

    问题描述 xff1a 程序中有两个数a b 其中a 61 4 b 61 5 xff0c 现在希望交换两个数的值 xff0c 使得a 61 5 b 61 4 在这里我总结了一下目前我已经掌握的C语言中交换两个数的方法 xff0c 主要如下几种
  • 输出平行四边形图案(多种方案)

    问题描述 xff1a 使用 在控制台打印平行四边形 例如 xff1a 平行四边形中最长的一行输出的 是5个 xff0c 则平行四边为 xff1a span class hljs bullet span span class hljs emp
  • 自己实现strcat函数

    问题描述 xff1a 自己实现一个MyStrcat函数 xff0c 要和C语言库函数的strcat函数完成同样的功能 问题分析 xff1a 首先我们要了解一下strcat函数它到底做了什么事情 1 函数原型 char strcat char
  • 简易文件打包程序

    对指定目录下面的文件进行打包 简易解包程序参考博客另外一篇文章 xff1a http blog csdn net yi ming he article details 77689453 打包方式 xff1a 把目录下面的文件名 xff0c
  • 简易解包程序

    对压缩包进行解压 简易压缩程序请参考博客的另外一篇文章 xff1a http blog csdn net yi ming he article details 77689405 解包方式 xff1a 根据打包建立的索引表 xff0c 找到对
  • linux 挂载错误Transport endpoint is not connected

    mount了mfs后 xff0c 重新挂载之后 xff0c 出现如下错误 xff1a usr local mfs bin mfsmount H 192 168 103 101 mnt fuse bad mount point 96 mnt

随机推荐

  • 新字体的永久注册

    CString GetCurrentModuleDir TCHAR szPath MAX PATH 43 1 61 0 if 0 61 61 GetModuleFileName HMODULE amp ImageBase szPath MA
  • yolov5/v7/v8自动检测多个文件夹及截取锚框

    目前yolo仅支持检测图片或单个文件夹 xff0c 但在很多时候需要对成百上千个文件夹中图片进行检测 xff0c 再根据得到的位置信息txt文件来截取图片 xff0c 如何一步完成呢 xff0c 详情见下文 在detect py中将save
  • 带参数的宏定义、函数与内联函数

    文章目录 前言一 宏定义1 基本用法2 带参数的宏定义 二 函数1 定义与声明2 调用 三 内联函数 inline总结 前言 在实际项目开发 xff0c 尤其是嵌入式软件项目中 xff0c 经常可以看到大量宏定义的分布 xff0c 其中又多
  • C++语言为什么跨平台?

    xfeff xfeff 现在主流的手机平台很多 xff0c 比如 xff1a Windows开发的Windows Phone xff08 WP 34 X 34 xff09 Apple 苹果公司 开发的ios xff0c Google 谷歌
  • CMake 中的list操作

    Cmake 中定义了一系列的数组操作 xff0c 使用方法如下 list INSERT lt list gt lt element index gt lt element gt lt element gt list REMOVE ITEM
  • 解决error while loading shared libraries: libXXX.so.X: cannot open shared object file: No such file

    原文转自CSDN xff0c 本文有删减 一 问题 运行hydra时 xff0c 提示错误 xff1a hydra error span class hljs keyword while span loading span class hl
  • 栈(超简单讲解版

    没错又是我来了 xff08 上一篇DFS还没写好就先来写队列与栈了哈哈哈哈 是很简单的内容呢 xff08 比DFS简单到哪里去了 先来认识一下栈 什么是栈 xff1f 度娘是这样说的 xff1a 栈 xff08 stack xff09 又名
  • ROS下使用stm32 与rosserial进行通信的开发说明及源代码示例

    关于stm32下的ROS开发环境介绍说明 xff0c 此开发环境是在Linux下使用stm32的标准库 STM32F10x StdPeriph Driver3 5 xff0c 进行stm32开发 xff0c 整体开发框架已搭建完成 xff0
  • 【ROS Rikirobot基础-使用系列 第四章节】Rikirobot小车使用激光雷达进行自动导航

    利用激光雷达进行自动导航 这里我们教大家使用的是利用激光雷达导航 xff0c 关于深度摄像头的导航我们后面会教大家使用 1 上电启动小车 xff0c 主控端执行启动小车的命令 xff1a roslaunch rikirobot bringu
  • js函数的四种调用形式以及this的指向

    以函数的 形式调用 xff1a function fun alert this 61 61 window fun 调用成功 xff0c this代表window 以方法的形式调用 var obj 61 name 61 34 hello 34
  • warning: control reaches end of non-void function

    用gcc编译一个程序的时候出现这样的警告 xff1a warning control reaches end of non void function 它的意思是 xff1a 控制到达非void函数的结尾 就是说你的一些本应带有返回值的函数
  • 项目中遇到的问题及解决方案

    1 用到的视频播放插件只支持加载相对路径 xff0c 不能加载绝对路径上的资源 解决方案 xff1a 为tomca t配置 文件 创建索引 xff0c 在 server xml文件中增加配置 lt Context path 61 34 IM
  • Oracle批量更新sql写法

    select from test table for update begin for cur in select id from test table loop update test table set name 61 39 苏晓伟 3
  • JVM 垃圾回收机制

    JVM体系结构概览 xff1a 垃圾回收 xff08 GC xff09 发生在哪个区 xff1a heap xff08 堆 xff09 区 GC是什么 xff1f 分几种 xff1a GC 分代收集算法 次数上频繁收集young区 xff0
  • JAVA 自定义注解

    多说无益 xff0c 直接上代码 import java lang annotation Documented import java lang annotation ElementType import java lang annotat
  • Vuex 学习

    什么是vuex xff1a 专门在Vue中实现集中式状态 xff08 数据 xff09 管理的一个Vue插件 xff0c 对vue应用中多个组件的共享状态进行集中式的管理 xff08 读 写 xff09 xff0c 也是一种组件间通信的方式
  • zookeeper本地安装启动

    下载zookeeper xff1a 链接 xff1a https pan baidu com s 151ZdXYg6QDB A8TRK0wrpw 提取码 xff1a yyds 复制到linux上并解压修改配置文件的名字 xff0c 将 zo
  • zookeeper集群安装

    准备3台服务器 xff0c 安装三个zookeeper xff0c 修改zoo cfg配置 xff0c dataDir 61 opt module zookeeper 3 5 7 zkData 分别在zkData目录下创建一个文件myid
  • zookeeper 启动停止脚本

    bin bash case 1 in 34 start 34 for i in 192 168 66 133 192 168 66 134 192 168 66 129 do echo zookeeper i 启动 ssh i 34 opt
  • ElasticSearch-全文检索

    docker 下载安装 es镜像 docker pull elasticsearch 7 4 2 es的可视化工具 docker pull kibana 7 4 2 mkdir p mydata elasticsearch config m