首页 > 其他分享 >Spring Data Elasticsearch String类型不指定filed 索引创建情况

Spring Data Elasticsearch String类型不指定filed 索引创建情况

时间:2024-04-02 19:12:46浏览次数:32  
标签:段值 String 倒排 Spring 索引 Elasticsearch keyword 类型

  对于String类型的字段如果不指定类型会默认创建两种倒排索引

        "itemSkuCodes": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        }

    Text类型的倒排索引

 

    Elasticsearch会对其进行分词处理,然后创建这些词项的倒排索引以支持全文搜索。

    Keyword类型的倒排索引

    Elasticsearch会将整个值作为一个整体来索引,不会进行分词处理。但是当存储值大于 ignore_above 设置的值时, Keyword会被截断 导致失效,当使用Elasticsearch中的"keyword"类型字段时,如果字段值的长度超过了"ignore_above"参数所设置的值,会导致倒排索引失效。这是因为"keyword"类型的字段会将整个字段值作为一个整体来索引,而不会对字段值进行分词处理。"ignore_above"参数用于限制字段值的长度,超过这个长度的字段值将被忽略,不会被索引。如果字段值的长度超过了"ignore_above"设置的值,Elasticsearch将无法正确处理这些超长的字段值,导致倒排索引失效。



所以模糊查询时 最好对设置字段类型设置text并设置keyword分词器,这样字段不会被分词,也不会超长被截取@Field(type = FieldType.Text, searchAnalyzer = "keyword", analyzer = "keyword")

 

关于检索时字段是否要携带 .keyword字段的问题

   1  上面已经说过,String类型会默认创建text和keyword的倒排索引,所以这种情况下要使用精确查询或者使用keyword模糊查询, 需要在字段后拼接 .keyword

   2  当string类型字段设置@Field(type = FieldType.Keyword) 或者 @Field(type = FieldType.text)等 时则不需要拼接 .keyword,否则查询不出数据

    

 

标签:段值,String,倒排,Spring,索引,Elasticsearch,keyword,类型
From: https://www.cnblogs.com/xiaoxiaoxingkong/p/18109044

相关文章

  • 基于SpringBoot+Vue前后端分离的宠物领养管理系统的设计与实现+15000字毕业论文
    介绍用户端:首页:播放宠物视频,展示公告列表,介绍流浪宠物。宠物领养:用户搜索想要领养宠物,申请领养,查看自己领养的宠物。流浪宠物救助:用户能够看到需要救助的流浪宠物,并能够新增新的流浪宠物信息。宠物喂养点:用户能够看到需要喂养的流浪宠物的地点,并展示出地点环境。丢失宠物......
  • springboot校园台球厅人员与设备管理系统
    在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括校园台球厅人员与设备管理系统的网络应用,在外国管理系统已经是很普遍的方式,不过国内的管理网站可能还处于起步阶段。校园台球厅人员与设备管理系统具有校园台球厅人员与设备信息管理功能的选择。校园台......
  • 一文彻底搞懂SpringMVC执行流程
    文章目录1.MVC2.SpringMVC3.执行流程4.配置文件5.常用注解1.MVCMVC(Model-View-Controller)是一种软件架构模式,旨在将应用程序分为三个核心组件:模型(Model):模型代表应用程序的数据和业务逻辑。它负责管理数据的状态和行为,并且不直接处理用户界面或用户输入。通......
  • Spring默认BeanName
    先说结论:1、XML配置和注解生成默认BeanName的机制是不同的2、XML配置默认BeanName=全类名+#+数字,如com.anyway.p2024.service.impl.BigHouseServiceImpl#03、注解默认BeanName=短类名首字母变成小写,如bigHouseServiceImpl注意:如果短类名前2个字母都是大写,则保持短类......
  • 【附源码】计算机毕业设计音乐豆瓣(java+springboot+mysql+mybatis+论文)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义音乐豆瓣是一个以音乐为主题的社交网站,用户可以在网站上分享自己喜欢的音乐、评论和推荐音乐作品,还可以与其他用户进行交流和互动。音乐豆瓣的目的是为了让更多的......
  • 【附源码】计算机毕业设计玉龙湾小区网站(java+springboot+mysql+mybatis+论文)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义玉龙湾小区作为一个大型的综合性社区,拥有众多的住户和商铺。为了更好地满足社区居民的需求,提高社区管理的效率和质量,建立一个专门的网站是非常必要的。这个网站可......
  • k8s + springcloud 微服务开发调试工具kt Connect的使用
    概览KtConnect(全称KubernetesToolkitConnect)是一款基于Kubernetes环境用于提高本地测试联调效率的小工具。通过这个工具,可以不在本地启动所有服务,只需启动当前开发的服务即可,其它服务使用的是部署在k8s集群的实例,如下图:Reference官方文档:https://github.com/alibaba/......
  • 【附源码】计算机毕业设计银行资金账户管理系统(java+springboot+mysql+mybatis+论文)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义银行资金账户管理系统是一种基于互联网技术的信息化管理平台,旨在提高银行资金管理的效率和安全性。随着金融市场的快速发展和金融产品的多样化,银行资金管理面临着......
  • 【附源码】计算机毕业设计疫情居家隔离服务系统(java+springboot+mysql+mybatis+论文)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义随着新冠疫情的爆发,居家隔离成为了防控疫情的重要手段之一。然而,在实际操作中,居家隔离存在着许多问题,如隔离人员的生活保障、健康状况监测等。因此,设计并实现一个......
  • windows环境下elasticsearch安装教程(超详细)
     一、安装jdkElasticSearch是基于lucence开发的,也就是运行需要javajdk支持。所以要先安装JAVA环境。由于ElasticSearch5.x往后依赖于JDK1.8的,所以现在我们下载JDK1.8或者更高版本。下载JDK1.8,下载完成后安装。二、安装ElasticSearch1.ElasticSearch下载地址:https:/......