全文检索引擎ElasticSearch:文档管理、集成IK分词器

article/2025/10/5 14:14:55

ElasticSearch

  • 文档管理
    • 添加文档
    • 修改文档
    • 删除文档
    • 文档的查询
  • IK分词器安装
    • 使用IK分词器

文档管理

添加文档

定位到资源
url

http://localhost:9200/{index}/{type}/{_id}

_id:文档的id

方法

put、post

请求体:json数据格式

{"id":1,"name":"张三","address":"浙江杭州"
}

在这里插入图片描述
注意:_idid不是同一个东西
_id:文档的id,es自动创建
id:一个自定义的字段
在这里插入图片描述
如果使用post方法添加文档,可以不设置文档的id,es会自动生成一个id(一般推荐使用put的写法,可以使id和_id保持一致)。
在这里插入图片描述

修改文档

其实就是先删除后添加。所以修改与添加的方法相同。

url:

http://localhost:9200/{index}/{type}/{_id}

方法:

POST

请求体:修改结果对应的文档。
在这里插入图片描述

删除文档

url:

http://localhost:9200/{index}/{type}/{_id}

方法:

delete

在这里插入图片描述

文档的查询

一、使用headmaster查询
数据过滤查询
在这里插入图片描述
简单查询功能:

  1. 根据id查询

  2. 根据term(关键词)查询:一个关键词就是一个term,包含两部分内容
    关键词所在的域
    关键词本身在这里插入图片描述

  3. 根据query_string查询:先分词再进行查询
    在这里插入图片描述

二、使用restful api查询
1、 根据id查询
定位到资源:

http://localhost:9200/{index}/{type}/{_id}

方法

GET

在这里插入图片描述
2、根据term查询
url

http://localhost:9200/{index}/{type}/_search

方法

POST

请求体

查询条件,使用json格式表示。
{"query":{"term":{"name":"小"}}
}

在这里插入图片描述
3、根据query_string查询
url

http://localhost:9200/{index}/{type}/_search

方法

POST

请求体

{"query":{"query_string":{"query":"小明在哪?","default_field":"name"}}
}

在这里插入图片描述

IK分词器安装

以插件形式安装到es中,注意es安装插件后,es的绝对路径中,不能有空格,否则会出现预料之外的错误!!!

下载地址,如果下载失败,则可以下载源代码然后使用maven进行编译打包

https://github.com/medcl/elasticsearch-analysis-ik/releases

安装方法:

  1. 下载ik的ES插件(注意要对应版本),如果下载速度慢,可以使用gitee
  2. 解压缩
  3. 解压后的文件夹复制到es的plugins目录下
  4. 重启es服务

测试分词器:可以通过一个url测试分词器的分词效果
使用get方法即可
ik分词器的名称:

  • ik_smart:快速分词
  • ik_max_word:最细粒度分词

6.x以下版本的测试方法

http://localhost:9200/_analyze?analyzer=ik_max_word&text=我是程序员

6.x以上版本的测试方法

在这里插入图片描述

使用IK分词器

设置mapping时,指定中文分词器

创建新的索引库,添加数据

在这里插入图片描述
查询出来了两条结果
在这里插入图片描述


http://chatgpt.dhexx.cn/article/apNRiOnA.shtml

相关文章

Citavi、Endnote、Mendeley 功能大比拼!到底哪一款才是众望所归的终极文献管理软件?...

软件简介: Citavi 来自瑞士 Swiss Academic Software 公司。其定位于“知识组织管理软件”,在欧洲(特别是德语区)被广泛使用。它不仅仅是一款文献管理软件,而且整合了知识管理、任务计划、PDF 全文搜索、笔记等科研工作…

ACCESS实例1——简易文档管理器

计算机用久了,硬盘里会建立的大量的文档,查阅时可能忘了放在哪个路径下。一个方法是,利用系统提供的搜索功能来查找文件。另外,我们可以利用数据库创建一个文档管理器,将一些有用的文件保存在数据库中,这样…

Oracle Primavera Unifier文档管理器(Document Manager)

目录 引言 介绍 引言 在 Oracle Primavera Unifier 中,文档管理器维护项目的所有文件和文档。每个项目/外壳都包含自己的文档管理器,另一个文档管理器驻留在公司级别。管理员确保员工和项目/shell 成员始终使用最新版本的文档,并使访问和分…

adb 5037端口被占用MAC

今天使用adb命令时,发现找不到模拟器了 然后就关闭adb,不能重启could not start server,百度下来说是端口被占用了。 解决步骤: 1.然后查找5037端口:lsof -i tcp:5037 2.杀掉这个进程:kill 1019 3.再次尝…

daemon not running; starting now at tcp:5037【解决方案】

【问题】程序报错:daemon not running; starting now at tcp:5037 【原因】5037端口被占用 【方法】找出5037端口占用的应用,关闭掉该应用进程 【解决方案】 打开cmd命令窗口,首先找出占用的应用,则输入如下命令找出占用5037端口的…

ADB【问题】程序报错:daemon not running; starting now at tcp:5037

标题5037【问题】程序报错:daemon not running; starting now at tcp:5037 一、解决步骤 ADB【问题】程序报错:daemon not running; starting now at tcp:5037 【原因】5037端口被占用【方法】找出5037端口占用的应用,关闭掉该应用进程【解…

AndroidStudio中* daemon not running; starting now at tcp:5037

Bug场景:AndroidStudio中* daemon not running; starting now at tcp:5037 问题描述 Android Studio中出现,且一直出现,即使是关闭Android Studio、杀掉占用的端口也是同样解决不掉 *daemon not running;starting now at tcp:5037 …… ……

启动Android项目时出现adb]* daemon not running; starting now at tcp:5037

error1 启动Android项目时出现adb]* daemon not running; starting now at tcp:5037 是由于5037端口被占用 打开命令行输入 netstat -ano | findstr “5037” 查找占用5037端口的应用 看到是11576占用了5037端口 输入taskkill -f -pid 11576 杀死该进程(注意要关闭…

Killing adb server on port 5037

在学appium自动化时,遇到一个问题:pycharm报错Could not find a connected Android device, appium始终提示’Killing adb server on port 5037’ 我起初觉得是因为设备没有连接导致的,然后在cmd窗口输入adb devices确实没有连接…

appium报错Killing adb server on port 5037问题,及pycharm连接不到Android设备问题

这几天在搭建pycharm appium 夜神模拟器 环境,完成一个测试入门案例,发现启动appium服务器时会一直报Killing adb server on port 5037,pycharm一直报连接不到安卓设备,在网上找了很多资料,说法有很多: 网…

【Android报错】daemon not running; starting now at tcp:5037

新建了一个Android空项目,然后运行时报的错误为daemon not running; starting now at tcp:5037。截图如下: 解决办法(中止其他占用5037的进程): 再次运行 参考文章

【安卓逆向】cannot connect to daemon at tcp:5037: cannot connect to 127.0.0.1:5037: 由于目标计算机积极拒绝,无法连接。 (100

原因: 5037端口被占用 解决: 1、通过字符串,查找端口5037占用情况: netstat -ano | findstr "5037"2、通过字符串查找,对应的是哪个任务(程序): tasklist | findstr …

Mac adb报错daemon not running; starting now at tcp:5037

今天上班,安装测试包准备测试,运行adb时,突然报错如下: daemon not running; starting now at tcp:5037 刚开始以为是5037端口被占用,于是想过滤出占用该端口的进程 sudo lsof -i :5037 命令执行后,结果返…

daemon not running; starting now at tcp:5037

问题: 运行模拟器程序报错:daemon not running; starting now at tcp:5037 原因: 5037端口被占用 解决方案 找出5037端口占用的应用,关闭掉该应用进程 打开cmd命令窗口输入 netstat -ano | findstr “5037” 这里是16324占用程…

windows ADB 5037端口总是被占用

背景: windows 安装adb后,adb connect ip:5555,总是出现5037端口被占用的提示,杀掉该端口的进程后,再尝试,又出现目标积极拒绝 解决方法: 参考:https://blog.csdn.net/sex_34/article/details…

打开计算机5037端口,adb 5037端口被占用

端口被占用.png 方式一 5037为adb默认端口,若5037端口被占用,查看占用端口的进程 PIDC:\Users\wwx229495>netstat -aon|findstr 5037 TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 8292 通过PID查看所有进程C:\Users\qq>tasklist /fi "PID eq 829…

关于5037端口的占用解决方法

输入adb shell命令 出现error说明端口被占用 输入netstat -ano | finder ”5037“查看占用5037端口的pid 使用tasklist | finder ”pid号“查看是哪个进程占用了端口 -使用taskkill /pid pid号杀死进程 有时出现这种错误 只需要在后面加入-f 再次输入adb shell

查看电脑端口占用情况以及哪种进程占用

参考来源:https://blog.csdn.net/dg_123/article/details/104593219 因为套接字的唯一性(一个套接字只能由 协议/网络地址/端口号 唯一确定 ),一个电脑只能有一个程序关联对应的端口,对于adb对应的端口就是5037。为了…

adb devices报错5037,unauthorized等问题整理解决办法

adb devices报错5037,unauthorized等问题 方法一 杀进程方法二:方法三方法四 万能关闭,重启法方法五 手机问题 方法一 杀进程 在cmd中查找占用“5037”的进程 netstat -aon|findstr “5037”一般出现这种 TCP 127.0.0.1:5037 0.0.0.0:0 LIS…

webstorm:修改为黑色背景 好看的webstorm主题

File > Settings > Appearance & Behavior 选中Darcula 酷酷的颜色 ----------------------------------------- 导入导出设置 File > Export Settings导出用户设置。如下图,你可以选择要导出哪些类型的设置,也可以选择导出到哪个…