ES multiMatchQuery 短语精确匹配多个字段

这篇具有很好参考价值的文章主要介绍了ES multiMatchQuery 短语精确匹配多个字段。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

multiMatchQuery
用于匹配多个字段,但是会对搜索关键字进行分词

但是有时候需要精确匹配 (也就是对搜索关键字不分词)多个字段 。怎么办呢

答案 是 用这个multiMatchQuery 方法进行查询。但是要指定type

## multi_match查询的类型

multi_match: 查询内部到底如何执行主要取决于它的 type 参数,这个参数的可取得值如下

best_fields: 是默认类型,会将任何与查询匹配的文档作为结果返回,但是只使用最佳字段的 _score 评分作为评分结果返回。
most_fields: 将任何与查询匹配的文档作为结果返回,并所有匹配字段的评分合并起来
     phrase: 在 fields 中的每个字段上均执行 match_phrase 查询,并将最佳字段的 _score 作为结果返回
phrase_prefix: 在 fields 中的字段上均执行 match_phrase_prefix 查询,并将每个字段的分数进行合并

DSL  语句示例:

GET multimatchtest/_search
{
  "query": {
    "multi_match": {
      "query": "blabla like",
      "operator": "and", -- 默认or
      "fields": [ "subject", "message"],
      "type": "phrase" -- 设置为精确匹配
    }
  }
}

Java 代码示例文章来源地址https://www.toymoban.com/news/detail-623088.html

QueryBuilders.multiMatchQuery(s,Cont.ORG_NAME,Cont.REQUIRE_ORG_NAME,Cont.PROJECT_ORG_NAME)
                        .type(MultiMatchQueryBuilder.Type.PHRASE))

到了这里,关于ES multiMatchQuery 短语精确匹配多个字段的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【Elasticsearch】ES精确查询和范围查询,ES时间字段排序实例,ES倒排索引介绍

    termQuery matchQuery 模糊查询 multiMatchQuery 多个字段模糊查询 如果时间字段写入时用的类型是Text,可以用“时间字段.keyword”来处理 #查询前传入分页参数 #分页后拿到总记录数 把文档D对应到的映射转换为到文档ID的映射,每个都对应着一系列的文档,这些文

    2024年02月15日
    浏览(113)
  • ElasticSearch系列 - SpringBoot整合ES:多个精确值查询 terms

    ElasticSearch - SpringBoot整合ES:多个精确值查询 terms 01. ElasticSearch terms 查询支持的数据类型 在Elasticsearch中,terms查询支持多种数据类型,包括: 字符串类型:可以将多个字符串值作为数组传递给terms查询,以匹配包含任何一个指定字符串值的文档。 数值类型:可以将多个数值作

    2024年02月16日
    浏览(69)
  • ElasticSearch系列 - SpringBoot整合ES之全文搜索匹配查询 match

    官方文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/index.html 权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/structured-search.html 1. 数据准备 官方测试数据下载地址:https://download.elastic.co/demos/kibana/gettingstarted/accounts.zip ,数据量很大,我们自己构造数据吧。 2. m

    2023年04月08日
    浏览(51)
  • ElasticSearch系列 - SpringBoot整合ES:多字段查询 multi_match

    1. 什么是 ElasticSearch 的 multi_match 查询? 有时用户需要在多个字段中查询,除了使用布尔查询封装多个match查询之外,可替代的方案是使用multi_match。可以在multi_match的query子句中组织数据匹配规则,并在fields子句中指定需要搜索的字段列表。 以下是一个示例multi-match查询

    2023年04月21日
    浏览(64)
  • es多字段模糊匹配wildcardQuery,java实现

    es 版本:7.10.1 spring-cloud版本:2.3.5.RELEASE spring-boot-starter-data-elasticsearch 版本 2.3.12.RELEASE spring-data-elasticsearch 版本 4.0.9.RELEASE es查询,需求:title或者content任意一个字段能匹配到即可 使用dsl查询语句如下,构建一个query ,should只要一个匹配即可 运行结果,可以查出数据

    2024年02月11日
    浏览(37)
  • ES多个字段group by操作

    以下操作基于es6.8 这种方式查询出来的数据不是扁平化的,而是一层套一层的,比如字段一套字段二。 结果,one下面的buckets里面是two,每个two下面有自己的bukets,就是two的值和count。 封装一个通用的聚合查询并映射到java类中   这种方式查出来的数据更扁平化,容易被接受

    2024年02月15日
    浏览(38)
  • 如何使用ES更有效率的进行多字段模糊匹配

    ​ 有时候需要ES模糊多个多个和中文相关的字段,可以把多个字段合成一个逻辑意义上的字段进行模糊 此时需要两个配置: 1、copy_to (将多个字段整合成一个字段)官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/5.5/copy-to.html 2、ngram (分词器在对纯中文或者中英文混合相关等

    2024年02月11日
    浏览(41)
  • es查询nested字段类型数组长度来判断是否包含多个值

    使用es时经常会碰到查询数组格式的字段是否有多个值的情况,总结一下。 一、字段类型为keywork时 当字段类型为keyword时(创建索引后,添加的第一条数据id字段格式为数组格式,便会导致后续的数据都是数组),查询id字段有多值时用以下查询语句: 二、字段类型为nested类型时

    2024年02月11日
    浏览(58)
  • Elasticsearch (ES) 搜索引擎: 搜索功能:搜索分页、搜索匹配、全文搜索、搜索建议、字段排序

    原文链接:https://xiets.blog.csdn.net/article/details/132348920 版权声明:原创文章禁止转载 专栏目录:Elasticsearch 专栏(总目录) ES 搜索 API 官网文档:Search APIs 先创建一个索引,并写入一些文档用于搜索示例: 写入一些文档示例: 官网API:The _source option 搜索结果中的文档数据封装

    2024年02月08日
    浏览(50)
  • Java查询es数据,根据指定id检索(in查询),sql权限过滤,多字段匹配检索,数据排序

    Java集成Elasticsearch,进行索引数据查询,并进行sql权限过滤,指定id检索(in查询),多字段匹配检索,数据排序。由于权限过滤是根据sql语句判断当前用户或其部门可查询的数据,所以采用以下方法: 1.通过sql过滤出当前用户可查询的数据id集合idsList; 2.将当前用户可查询的

    2024年02月22日
    浏览(65)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包