【搜索引擎2】实现API方式调用ElasticSearch8接口

这篇具有很好参考价值的文章主要介绍了【搜索引擎2】实现API方式调用ElasticSearch8接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、理解ElasticSearch各名词含义

ElasticSearch对比Mysql

Mysql数据库 Elastic Search
Database 7.X版本前有Type,对比数据库中的表,新版取消了
Table Index
Row Document
Column mapping

Elasticsearch是使用Java开发的,8.1版本的ES需要JDK17及以上版本;es默认带有JDK,如果安装es环境为java8,则会默认使用自带环境;

索引、文档、映射

    索引index
        跟我们常说的数据库索引没有任何关系,它其实相当于数据库里面存数据的表;

文档document
        对应我们数据库的数据,即每行数据;

映射mappding
        对应我们数据库的字段,自己设置的话需要设置字段类型,不设置在插入文档内容的时候es会按照字段内容设置字段类型;

分片、副本

    分片shards
        数据量特大,没有足够大的硬盘空间来一次性存储,且一次性搜索那么多的数据,响应跟不上,ES提供把数据进行分片存储,这样方便进行拓展和提高吞吐;
    副本replicas
        分片的拷贝,当主分片不可用的时候,副本就充当主分片进行使用
        索引分片的备份,shard和replica一般存储在不同的节点上,用来提高高可靠性

ES默认为一个索引创建1个主分片和1个副本,在创建索引的时候使用settings属性指定,每个分片必须有零到多个副本

注意:索引一旦创建成功,主分片primary shard数量不可以变(只能重建索引),副本数量可以改变

 正排索引、倒排索引

  • 正排索引 (Forward Index )

    • 指将文档的内容按照文档的顺序进行索引,每个文档对应一个索引条目,包含了文档的各个字段的内容
    • 正排索引的优势在于可以快速的查找某个文档里包含哪些词项。但是 正排不适用于查找包含某个词项的文档有哪些

倒排索引(Inverted Index)

  • 根据关键词构建的索引结构,记录了每个关键词出现在哪些文档或数据记录中,适用于全文搜索和关键词检索的场景

  • 它将文档或数据记录划分成关键词的集合,并记录每个关键词所出现的位置和相关联的文档或数据记录的信息

2、默认分词及IK分词区别演示

使用es自带分词器对内容进行分词

elasticsearch 8 terms api,搜索引擎,elasticsearch,大数据

使用ik-smart进行分词

elasticsearch 8 terms api,搜索引擎,elasticsearch,大数据

使用ik_max_word进行分词

elasticsearch 8 terms api,搜索引擎,elasticsearch,大数据

分词模式 特点
es默认standard 对中文按照一个一个字进行分词
ik智能分词ik_samrt 按照中文词组进行分词,不会重复对单个文字进行分词
ik最小颗粒分词ik_max_word 除了对词组进行分词外,还会对单个文字,及多词组进行分词

理解完分词模式后,我们在插入文档的时候是可以测试文档默认使用了哪种分词;在我的测试结果中,集成IK的ES默认使用的是ik_max_word;

3、索引及映射操作

索引常用接口:

接口名称 请求方式 接口地址 请请求参数 请求结果
查看所有索引 GET /* 索引列表,没有数据返回{}
创建索引 PUT /index_name

{

    "settings": {

        "number_of_shards": 3,

        "number_of_replicas": 0

    },

    "mappings": {

        "properties": {

            "id": {

                "type": "keyword"

            },

            "createTime": {

                "type": "date"

            },

            "name": {

                "type": "text"

            }

        }

    }

}

请求成功返回

{

    "acknowledged": true,

    "shards_acknowledged": true,

    "index": "file"

}

是否存在 HEAD /index_name

200索引存在

404索引不存在

获取索引 GET /index_name 索引信息
更新索引设置 PUT /index_name {
  "settings": {
    "number_of_replicas": 2
  }
}
删除索引 DELETE /index_name

{

    "acknowledged": true

}

mapping无法后面进行单独设置,或者插入文档的时候es自动识别进行填入默认类型;

4、文档操作(“/_doc”代替之前版本type,固定写法)
接口名称 请求方式 接口地址 请请求参数 请求结果
查询文档 GET /index_name/_doc/1
新增文档指定ID PUT /index_name/_doc/1 {
  "id":5555,
  "name":"小滴课堂短链平台",
  "createDate":"20240311"
}
新增文档不指定ID POST /index_name/_doc {
  "id":5555,
  "name":"小滴课堂短链平台",
  "createDate":"20240311"
}
修改文档 PUT/POST /index_name/_doc/1 {
  "id":5555,
  "name":"小滴课堂",
  "createDate":"20240312"
}
删除文档 DELETE /index_name/_doc/1

文档存储文件的类型为JSON;文档ID与我们参数的id不是同一个参数,文档ID类似于mysql设置了一个自增ID,我们在插入数据的时候可传值,也可不传值;

5、内容搜索

搜索接口:GET /index_name/_search

请求参数:name为我们自己的字段,这里可以根据自己字段进行调整

{
    "query": {
        "match": {
            "name": "听取"
        }
    }
}

返回字段解释:

字段解释
  took字段表示该操作的耗时(单位为毫秒)。
  timed_out字段表示是否超时。
  hits字段表示搜到的记录,数组形式。
  total:返回记录数,本例是1条。
  max_score:最高的匹配程度,本例是1.0

关于es类型较多,后续单独出一篇文章进行记录

6、参考文章

ElasticSearch8.X入门教程:ElasticSearch8.X入门教程_elasticsearch 8.x 学习-CSDN博客文章来源地址https://www.toymoban.com/news/detail-854204.html

到了这里,关于【搜索引擎2】实现API方式调用ElasticSearch8接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SEO搜索引擎优化方式

    SEO搜索引擎优化方式 利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名,吸引更多的用户访问网站,提高网站的访问量,提高网站的销售能力和宣传能力,从而提升网站的品牌效应。 今天给大家介绍两种搜索引擎优化的技术手段。 通过欺骗技术和滥⽤搜索算法来推

    2024年02月11日
    浏览(82)
  • 各大搜索引擎下拉词长尾词API接口

    返回结果: 返回结果: 谷歌API接口地址2:http://suggestqueries.google.com/complete/search?output=toolbarhl=zhq=开源福利 返回结果:

    2024年02月11日
    浏览(27)
  • 伪API:让搜索引擎爱上你的网站【详细教程】

    大家好,今天来聊聊伪原创API:让搜索引擎爱上你的网站,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧: 伪原创API:让搜索引擎爱上你的网站 你是否在为如何提高网站在搜索引擎中的排名而苦恼?你是否希望让你的网站在搜索结

    2024年01月17日
    浏览(50)
  • 信息搜集:网络空间搜索引擎(Shodan)语法及API应用案例

    使用Python去调用Shodan的API接口可以实现自动化信息搜集,首先需要注册用户,在My Account中可以看到API Key。本例如下图: 初始化API: 初始化API之后就可以使用Shodan的库函数,下面整理一些常用函数,具体详细资料可以参考Shodan官方给出的API文档的API文档。 ​ § shodan_api.coun

    2023年04月08日
    浏览(41)
  • 百度搜索引擎推广的方式和优势有哪些呢?

    随着互联网的不断发展,搜索引擎的种类也越来越多了,对于国内用户来说,最常用的还是百度搜索引擎,而对于企业来说,做搜索引擎优化推广也是针对于百度搜索引擎来做的。   那么,百度搜索引擎推广的方式和优势有哪些呢?接下来就一起了解一下吧! 一、百度搜索

    2024年02月01日
    浏览(49)
  • 搜索引擎都有哪些关键词匹配方式

     1. 完全匹配 这个应该是很多SEO最熟悉的一种匹配方式了,什么是完全匹配呢?比如说我的是“SEO培训”,如果网站中完整的出现了这个词,并且的位置也匹配,这样就是完全匹配。这里需要特别明确说的一点就是,完全匹配一定是一个单独的才是,什么是

    2024年02月13日
    浏览(39)
  • 谷歌浏览器添加首页快捷方式,并设置默认搜索引擎为百度

    目录 1、添加首页快捷方式 ​2、谷歌浏览器设置默认搜索引擎 1、添加首页快捷方式 (1)首先要保证当前的默认搜索引擎为Google才可以添加首页的快捷方式。 (2)回到首页即可添加和自定义快捷方式的url (3)默认搜索引擎不是Google,则展示如下,无法添加和修改快捷方式

    2024年02月15日
    浏览(77)
  • ES搜索引擎入门+最佳实践(九):项目实战(二)--elasticsearch java api 进行数据增删改查

            本篇是这个系列的最后一篇了,在这之前可以先看看前面的内容: ES搜索引擎入门+最佳实践(一)_flame.liu的博客-CSDN博客 ES搜索引擎入门+最佳实践(二)_flame.liu的博客-CSDN博客 ES搜索引擎入门+最佳实践(三)_flame.liu的博客-CSDN博客 ES搜索引擎入门+最佳实践(四)_flame.liu的博客

    2024年02月12日
    浏览(48)
  • LangChain 67 深入理解LangChain 表达式语言30 调用tools搜索引擎 LangChain Expression Language (LCEL)

    LangChain系列文章 LangChain 50 深入理解LangChain 表达式语言十三 自定义pipeline函数 LangChain Expression Language (LCEL) LangChain 51 深入理解LangChain 表达式语言十四 自动修复配置RunnableConfig LangChain Expression Language (LCEL) LangChain 52 深入理解LangChain 表达式语言十五 Bind runtime args绑定运行时参数

    2024年01月23日
    浏览(62)
  • 如何高效实现搜索引擎爬虫进行数据挖掘-搜索引擎爬虫(SERP)集成测试与分享

    身处大数据时代中,我们面对海量的互联网数据,如何自动高效地获取感兴趣的信息并为我们所用是一个非常重要的问题,以下就针对这个重要的搜索引擎爬虫问题来做一个技术分享。 什么是SERP和搜索引擎爬虫:搜索引擎会根据特定的的策略,运用特定的计算机程序搜集互

    2024年02月11日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包