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

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

①在resources目录下创建commaAnalyzer_setting.json配置文件。
ps:注意pom.xml配置扫描json文件
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

②为文档类添加注解。

@Setting(settingPath = "commaAnalyzer_setting.json")

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

⑥测试。

{
  "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": {}
    }
  }
}

成功查询到数据

在这里插入图片描述

⑦SpringData代码实现。

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

参考文章,感谢大佬
spring data elasticsearch 使用 自定义分词/逗号分词 遇到的坑
SpringBoot整合ElasticSearch自定义分词器Analyzer

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值