写点什么

关于使用 ElascticSearch 的两个小技巧

作者:北桥苏
  • 2023-05-12
    广东
  • 本文字数:1087 字

    阅读完需:约 4 分钟

前言:

​ 之前也有讲到过 es 的基本使用,主要是通过 PHP 代码对 es 索引,文档等的增删改以及搜索优化的解决方案。而现在为了进一步满足搜索的全新功能,所以就需要一个中文分词器,而为了方面查看或管理 es 文档,可以使用图形化面板。所以接下来主要介绍 es 中文分词器的安装和 es 的 web 面板。

elasticsearch-analysis-ik 分词:

es 自带分词,但是没有中文分词,在一众 elasticsearch 的中文分词插件中,我推荐使用 analysis-ik。ik 可以对中文语义化分词,有粗略力度分词和最大化分词。最大化可以将一小段句子拆分成单个字,词语的幂集,如果本地的 es 没有安装该插件,对某文档的字段使用则会报下面错误。



所以,安装方法就来了,以下全部以 elasticsearch7.8.0 版本进行介绍和演示。本地安装了 es 后,找到其安装的根目录,会发现有一个 plugins 目录,里面就是放分词插件的地方。接下来就是按下面地址,选择与自己 es 版本相对的下载。




下载完成后,将解压包放入 es 的 plugins 目录中,重启 es,通过 postman 测试分词就标识成功了。


elasticsearch-head:

elasticsearch-head 是一个简单的 es web 面板,可以连接指定地址,查看 es 节点状况,创建索引,查看索引列表,文档,模拟搜索等。下面就简单介绍一下这个工具的安装。工具地址可以网络上搜索,我这里就不贴,在 github 也有。


因为这个工具是基于 NodeJs,所以安装的前提需要有 Node 环境,而且还要安装了 cnpm,cnpm 具体的方法可以网络自行查找。这些都准备好了之后,通过 cmd 进入到 elasticsearch-head 根目录。


第一步先执行 cnpm install。等待将所有的依赖包安装完毕后,执行 cnpm run start 就默认开启了本地的一个端口为 9100 的 http 服务,最后访问浏览器就可以了。



​ 浏览器进入到 127.0.0.1:9100,就可以看到下面这个页面,默认是没有连接 9200 的(es 的默认端口)。但是第一次连接会报跨域的错误,所以需要找到 es 的配置,也就是 config 目录下 elasticsearch.yml,在结尾添加两行代码,最后重启 es 再用面板连接就可以成功了。


http.cors.enabled: truehttp.cors.allow-origin: "*"
复制代码



因为这个工具有创建索引的功能,所以接下来我就主要通过 postman 演示创建文档和批量创建的方法,然后刷新面板的对应索引查看数据。


\1. 创建索引:



\2. 给指定索引添加一个文档:



\3. 给指定索引批量添加文档:


通过 postman 批量添加文档有两种方式,一种是以参数方式,另一种是以上传 json 文件方式。但是二者在书写文档时(也就是 json),在最后一定要加一个换行,不然会报错。


(1). 传参方式。



(2). 上传文件方式。



\4. 搜索:



以下就是通过 postman 测试添加的文档,还有一个是 es 从 7.0 版本后,一个索引只能有一个 type,并且都为_doc,所以面板中的类型都是_doc。




用户头像

北桥苏

关注

公众号:ZERO开发 2023-05-08 加入

专注后端实战技术分享,不限于PHP,Python,JavaScript, Java等语言,致力于给猿友们提供有价值,有干货的内容。

评论

发布
暂无评论
关于使用ElascticSearch的两个小技巧_php_北桥苏_InfoQ写作社区