(六) ElasticSearch 搜索实战

这篇具有很好参考价值的文章主要介绍了(六) ElasticSearch 搜索实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.搜索

1)精确匹配(Term Query)

精确匹配是在指定字段中查找精确匹配指定值的文档。以下是一个精确匹配的示例,查找字段 title 的值为 “Elasticsearch is powerful” 的文档:

POST /my_index/_search
{
  "query": {
    "term": {
      "title": "Elasticsearch is powerful"
    }
  }
}

2)全文搜索(Match Query)

match 查询是一种全文搜索查询,用于在指定字段中搜索与查询字符串相匹配的文档。它将查询字符串分词后与字段中的词进行匹配,并返回匹配的文档。
注意使用match,数据类型需要时text

(1)单条:

要执行单条的 match 查询,你可以使用以下示例代码:

POST /my_index/_search
{
  "query": {
    "match": {
      "content": "Elasticsearch"
    }
  },
  "size": 10,         // 指定每页返回的文档数量
  "from": 0           // 指定从哪个文档开始返回,即偏移量
}

(2)全部:

"match_all" 是一种查询类型,它匹配索引中的所有文档,返回所有的结果。它不需要指定具体的搜索条件,仅仅是在执行查询时返回所有文档。你可以使用以下示例代码:

POST /my_index/_search
{
  "query": {
    "match_all": {
    }
  },
  "size": 10,         // 指定每页返回的文档数量
  "from": 0           // 指定从哪个文档开始返回,即偏移量
}

(3)多个字段

要在 Elasticsearch 中进行多个字段的匹配查询,你可以使用 multi_match 查询。multi_match 查询允许你在一个查询中同时匹配多个字段,并返回匹配结果。

以下是一个使用 multi_match 查询进行多个字段匹配的示例:

POST /my_index/_search
{
  "query": {
    "multi_match": {
      "query": "Elasticsearch",
      "fields": ["title", "content"],
      "operator": "and"
    }
  }
}

需要注意的是,默认情况下,Elasticsearch 使用 OR 运算符来组合多个字段的匹配结果。也就是说,只要任何一个字段匹配成功,文档就会被返回。
如果你想要更改默认行为,可以通过设置 operator 参数来指定使用 AND 运算符。这样,只有同时在多个字段中都匹配成功的文档才会被返回。

(4)短语匹配

在 Elasticsearch 中,match_phrase 查询用于短语匹配,考虑词语顺序,返回包含完整短语的文档。以下是一个使用 match_phrase 查询的示例:

POST /my_index/_search
{
  "query": {
    "match_phrase": {
      "content": "quick brown fox"
    }
  }
}

(4)前缀短语匹配

在 Elasticsearch 中,match_phrase_prefix 查询是一种组合了短语匹配和前缀匹配的查询类型。它用于匹配包含特定短语前缀的文档。

以下是一个使用 match_phrase_prefix 查询的示例:

POST /my_index/_search
{
  "query": {
    "match_phrase_prefix": {
      "content": {
        "query": "quick brown",
        "slop": 2
      }
    }
  }
}

match_phrase_prefix 查询会考虑短语前缀的顺序,并返回包含匹配短语前缀的文档。通过设置 “slop” 参数,可以指定允许的词项间的最大间隔数。默认情况下,slop 的值为 0,即要求词项严格按照顺序相邻出现。通过增加 slop 的值,可以容忍更多的间隔。文章来源地址https://www.toymoban.com/news/detail-515963.html

到了这里,关于(六) ElasticSearch 搜索实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Spring Cloud学习(十一)【深入Elasticsearch 分布式搜索引擎03】

    聚合(aggregations)可以实现对文档数据的统计、分析、运算。聚合常见的有三类: 桶(Bucket)聚合:用来对文档做分组 TermAggregation:按照文档字段值分组 Date Histogram:按照日期阶梯分组,例如一周为一组,或者一月为一组 度量(Metric)聚合:用以计算一些值,比如:最大值

    2024年01月23日
    浏览(37)
  • 分布式搜索引擎ElasticSearch——深入elasticSearch

    聚合的分类 DSL实现Bucket聚合 DSL实现Metric聚合 RestAPI实现聚合 https://github.com/medcl/elasticsearch-analysis-pinyin DSL实现自动补全查询 Completion Suggester 修改酒店索引库数据结构 RestAPI实现自动补全查询 实现酒店搜索页面输入框的自动补全 数据同步思路分析 利用MQ实现mysql与elasticsearch数

    2024年01月17日
    浏览(38)
  • 分布式搜索引擎——elasticsearch搜索功能

    Elasticsearch提供了基于JSON的DSL (Domain Specific Language)来定义查询。常见的查询类型包括: 查询所有:查询出所有数据,一般测试用。例如:match_all 全文检索(full text)查询:利用分词器对用户输入内容分词,然后去倒排索引库中匹配。例如: match_query multi_match_query 精确查询:根据精确词条

    2024年02月05日
    浏览(51)
  • 分布式搜索引擎ElasticSearch——搜索功能

    DSL查询分类 DSL官方文档 全文检索查询 精确查询 地理查询 复合查询 Function Score Query function score query Boolean Query 排序 分页 官方文档 高亮 快速入门 match,term,range,bool查询 排序和分页 高亮显示 就是在前面抽取的解析代码中进一步添加关于高亮的解析部分,因为highlight和so

    2024年02月01日
    浏览(40)
  • 分布式搜索--elasticsearch

    一、初识 elasticsearch  1. 了解 ES ① elasticsearch 是一款非常强大的开源   搜索引擎 ,可以帮助我们从海量数据中   快速找到需要的内容 ② elasticsearch 结合 kibana、Logstash、   Beats,也就是 elastic stack (ELK),被   广泛应用在日志数据分析、实时监控等   领域 ③ elasticsearch 是e

    2024年02月12日
    浏览(51)
  • Elasticsearch分布式搜索

    目录 实用篇-ES-环境搭建 1. 什么是elasticsearch ​2. 倒排索引 3. elasticsearch对比mysql ​4. 安装elasticsearch 5. 安装kibana 6. 安装IK分词器 7. IK分词器的词典扩展和停用 实用篇-ES-DSL操作文档 1. mapping属性 2. 创建索引库 3. 查询、修改、删除索引库 4. 新增、查询、删除文档 5. 修改文档 实

    2024年04月22日
    浏览(38)
  • 分布式搜索——Elasticsearch

    Elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助用户从海量数据中快速找到需要的内容。例如:在GitHub搜索代码、在百度搜索问题的答案、在打车软件搜索附近的车。 ELK技术栈 elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应

    2024年01月17日
    浏览(29)
  • 分布式搜索elasticsearch概念

    什么是elasticsearch? elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容   目录 elasticsearch的场景 elasticsearch的发展  Lucene篇 Elasticsearch篇   elasticsearch的安装 elasticsearch的场景 elasticsearch结合kibana、Logstash、Beats,也就是elastic stack (ELK)。被

    2024年02月04日
    浏览(32)
  • 【分布式搜索引擎elasticsearch】

    什么是elasticsearch? 一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能 什么是elastic stack(ELK)? 是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在

    2024年02月10日
    浏览(39)
  • 分布式搜索引擎----elasticsearch

    目录 1、初识elasticsearch 1.1、什么是elasticsearch 1.2.ELK技术栈 2、正向索引和倒排索引 2.1、正向索引 2.2、倒排索引 2.3、正向索引和倒排索引的区别 3、elasticsearch中的概念理解 3.1、文档和字段 3.2、索引和映射 3.3、mysql与elasticsearch         elasticsearch是一款非常强大的开源搜索

    2024年02月11日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包