SpringBoot配置Elasticsearch以逗号分词查询(自定义逗号分词器)

这篇具有很好参考价值的文章主要介绍了SpringBoot配置Elasticsearch以逗号分词查询(自定义逗号分词器)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SpringBoot配置Elasticsearch以逗号分词查询(自定义逗号分词器)

①在resources目录下创建commaAnalyzer_setting.json配置文件。
ps:注意pom.xml配置扫描json文件
SpringBoot配置Elasticsearch以逗号分词查询(自定义逗号分词器),elasticsearch,spring boot,大数据

SpringBoot配置Elasticsearch以逗号分词查询(自定义逗号分词器),elasticsearch,spring boot,大数据
SpringBoot配置Elasticsearch以逗号分词查询(自定义逗号分词器),elasticsearch,spring boot,大数据

{
  "analysis": {
    "analyzer": {
      "comma": {
        "type": "pattern",
        "pattern": ","
      }
    }
  }
}

②为文档类添加注解。

@Setting(settingPath = "commaAnalyzer_setting.json")

SpringBoot配置Elasticsearch以逗号分词查询(自定义逗号分词器),elasticsearch,spring boot,大数据

③为要分词的字典添加注解属性

@Field(type = FieldType.Text, analyzer = "comma", searchAnalyzer = "comma")

SpringBoot配置Elasticsearch以逗号分词查询(自定义逗号分词器),elasticsearch,spring boot,大数据

④删除索引(如果已经存在索引,需要先删除索引才能重新生成带分词器的索引)。

SpringBoot配置Elasticsearch以逗号分词查询(自定义逗号分词器),elasticsearch,spring boot,大数据

⑤重启项目(重新生成索引),如图就是成功生成。

SpringBoot配置Elasticsearch以逗号分词查询(自定义逗号分词器),elasticsearch,spring boot,大数据
SpringBoot配置Elasticsearch以逗号分词查询(自定义逗号分词器),elasticsearch,spring boot,大数据

⑥测试。

{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "worksTitle": {
              "query": "动漫",
              "operator": "OR",
              "prefix_length": 0,
              "max_expansions": 50,
              "fuzzy_transpositions": true,
              "lenient": false,
              "zero_terms_query": "NONE",
              "auto_generate_synonyms_phrase_query": true,
              "boost": 1.0
            }
          }
        },
        {
          "term": {
            "isPublish": {
              "value": 1,
              "boost": 1.0
            }
          }
        },
        {
          "match": {
            "worksTag": {
              "query": "0,1",
              "operator": "OR",
              "analyzer": "comma",
              "prefix_length": 0,
              "max_expansions": 50,
              "fuzzy_transpositions": true,
              "lenient": false,
              "zero_terms_query": "NONE",
              "auto_generate_synonyms_phrase_query": true,
              "boost": 1.0
            }
          }
        }
      ],
      "adjust_pure_negative": true,
      "boost": 1.0
    }
  },
  "highlight": {
    "fields": {
      "worksTitle": {}
    }
  }
}

成功查询到数据

SpringBoot配置Elasticsearch以逗号分词查询(自定义逗号分词器),elasticsearch,spring boot,大数据

⑦SpringData代码实现。

boolQueryBuilder.must(QueryBuilders.matchQuery("worksTag", worksInfoESDTO.getWorksTag()).analyzer("comma"));

参考文章,感谢大佬
spring data elasticsearch 使用 自定义分词/逗号分词 遇到的坑
SpringBoot整合ElasticSearch自定义分词器Analyzer文章来源地址https://www.toymoban.com/news/detail-581652.html

到了这里,关于SpringBoot配置Elasticsearch以逗号分词查询(自定义逗号分词器)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • elasticsearch 基于ik分词器的分词查询和模糊匹配

    前言:elasticsearch 查询有很多,查询的条件有固定格式,返回结果提示不明确,让ES使用起来有点不方便的感觉,ES查询方式很多,简单介绍几种使用点的,实用的 此处简单梳理一下最常用的查询 模糊匹配查询 类似 mysql 语法中的 like ‘%value%’ 类似于百度的分词查询 将

    2024年02月16日
    浏览(38)
  • Elasticsearch专栏-5.es基本用法-分词查询

    所谓分词,就是把一段语句,分割成一个个单词的过程。比如\\\"717 Hendrickson Place\\\"短语,分词后就是三个单词,即717、hendrickson、place。注意,分词后的单词默认都是小写。 分词查询,指的就是查询时,把要查询的语句(字符串)先进行分词,然后拿分词后的单词去文档集合中比

    2024年01月16日
    浏览(45)
  • ElasticSearch关于自定义分词器模糊检索数字+字母

    之前的系统由于一些表的数据已经达到1~2百万行的数据了,而且还在与日俱增,一些条件比较复杂的检索,已经明显感觉到比较慢,影响用户的使用体验。所以引入的ElasiticSearch进行检索优化,效果还是比较好的。因为之前都没有怎么涉及到模糊检索这一块需求,只是为了速

    2024年02月16日
    浏览(36)
  • ElasticSearch 数据聚合、自动补全(自定义分词器)、数据同步

    官方文档 = 聚合 https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html 聚合:对文档信息的统计、分类、运算。类似mysql sum、avg、count 桶(Bucket)聚合:用来对文档做分组 TermAggregation:按照文档字段值分组(相当于mysql group by) Date Histogram:按照日期阶梯分组,

    2024年02月12日
    浏览(36)
  • docker 安装nginx 和 elasticsearch ik 自定义分词

    1、切换到/mydata 文件夹 创建 nginx 目录      mkdir nginx         2、运行 docker run --name nginx -p 80:80 -d nginx:1.22.0 3、复制docker 里面的nginx配置到  外面的nginx/conf 下面      docker cp nginx:/etc/nginx  /mydata/nginx 4、把 /mydata/nginx下面的nginx 改成conf     mv nginx/  conf 5、停nginx 删除dock

    2024年02月12日
    浏览(37)
  • elasticsearch基础6——head插件安装和web页面查询操作使用、ik分词器

    插件是用户以自定义方式增强es功能的一种方法,分两类,核心插件和社区贡献插件。 插件太多,只需要熟悉插件的安装流程即可,根据项目需要再自行安装。 核心插件: 核心插件属于es项目,插件的版本号始终与es安装包的版本号相同,这些插件由es团队维护。 项目地址

    2024年02月14日
    浏览(45)
  • ElasticSearch 实现分词全文检索 - SpringBoot 完整实现 Demo

    需求 做一个类似百度的全文搜索功能 搜素自动补全(suggest) 分词全文搜索 所用的技术如下: ElasticSearch Kibana 管理界面 IK Analysis 分词器 SpringBoot 实现流程 可以通过 Canal 对 MySQL binlog 进行数据同步,或者 flink 或者 SpringBoot 直接往ES里添加数据 当前以 SpringBoot 直接代码同

    2024年02月03日
    浏览(44)
  • Elasticsearch中使用IK分词配置

    在 Elasticsearch 中,可以使用 IK 分词器来替代默认的 text 类型。IK 分词器是一个开源的中文分词器,支持中文分词和英文分词。 要将默认的 text 类型修改为 IK 分词器,需要进行以下步骤: 安装 IK 分词器插件: 下载 IK 分词器插件,可以从 GitHub 上的 elasticsearch-analysis-ik 页面下

    2024年02月13日
    浏览(34)
  • canaladapter 同步mysql(一对多关系)到es,es 添加逗号分词查询

    mysql 一对多关系同步到es,刚好es需要的是一个字段对应逗号分割的值。这样就解决了mysql多表关联查询很慢的弊端。但是es中给如何把逗号分割的字符串做为查询条件呢,答案如下:先看一个简单的例子:   以上就是逗号分割的字段如何在es中检索出来。 项目中实战:通过ca

    2024年02月16日
    浏览(38)
  • Docker:Elasticsearch安装配置IK分词器

    一、背景:   搞了elasticsearch和kibana的安装和配置,在进行分词的时候没有达到自己预想的效果,于是写一下elasticsearch的ik分词器的安装和配置(自定义分词)。 二、解决方式: 1:首先看看没有加ik分词器的效果。 2:下载ik软件包。  3:选择自己响应版本。  4:将下载好的

    2023年04月18日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包