解决使用@Field注解配置分词器失效问题(Spring Data Elasticsearch)

news/2024/11/27 19:35:31/

问题复现:插入数据时,实体类配置的@Field注解没有生效

实体类:

package cn.aopmin.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(indexName = "product", // 索引库名称shards = 1, // 主分片个数replicas = 1 // 备份分片个数
)
public class Product {/*** 主键id*/// ES主键id@Idprivate Long id;/*** 商品名称*/// ES普通字段@Field(type = FieldType.Text, // 字段类型analyzer = "ik_max_word", // 建立索引用的分词器searchAnalyzer = "ik_smart", //查询时用的分词器store = true // 是否额外存储一份 (ES默认把文档字段存储在源文档_source中))private String productName;/*** 库存数量*/@Field(type = FieldType.Integer, store = true)private Integer store;/*** 价格*/@Field(type = FieldType.Double, store = true)private Double price;/*** 分类*/@Field(type = FieldType.Keyword) //不分词private String category;
}

查看索引库,发现它使用动态映射,并没有使用静态映射:

在这里插入图片描述

解决方案:在插入数据时,提前创建索引库和映射。

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


http://www.ppmy.cn/news/979276.html

相关文章

成都爱尔蔡裕:泡在“糖”里的脆弱血管,暴露在眼睛深处

糖尿病是一组由多病因引起的以慢性高血糖为特征的终身性代谢性疾病。长期血糖增高,大血管、微血管受损并危及心、脑、肾、周围神经、眼睛、足等。医生临床数据显示,糖尿病发病后10年左右,将有30%~40%的患者至少会发生一种并发症&a…

热门洗地机评测|追觅VS希亦VS米博洗地机,哪款更值得入手?

智能科技的发展越来越方便人们的生活,特别是现今人们生活水平不断提高,房子越住越大,需要顾及的房屋卫生打扫面积也越来越广。而单是通过人工去拖扫不仅很累还很浪费时间。于是洗地机的出现让很多深陷家务劳动的朋友得以解脱。因为很多洗地机…

Kamailio常用命令

kamctl --help:显示kamctl命令的帮助信息。 kamctl ps:列出当前的Kamailio进程列表。 kamctl stats:显示Kamailio的统计信息。 kamctl uptime:显示Kamailio的运行时间。 kamctl moni:启动Kamailio的监控模式。 ka…

分类、回归常用损失函数

分类: 交叉熵损失函数(Cross-entropy loss function) KL散度、交叉熵损失函数、nn.CrossEntropyLoss()_HealthScience的博客-CSDN博客 权重交叉熵损失函数(Weighted cross-entropy loss function) BCEWithLogitsLo…

Unity Profiler或UPR连接WebGL应用出错

问题 在使用Unity Build出WebGL应用进行性能测试的时候,勾选上了 Development Build和Autoconnect Profiler,分别使用Profiler和UPR进行测试 现象 使用Profiler测试时,就收到几帧,然后就没了 使用UPR进行测试时,在…

vuejs源码之模版编译原理

之前我们说过虚拟dom,也就是虚拟dom拿到vnode后所做的事情,而模版编译是如何让虚拟dom拿到vnode。 模版编译的目标就是生成渲染函数,而渲染函数的作用是每次执行它,它就会使用当前最新的状态生成一份新的vnode,然后用…

RocketMQ集成Springboot --Chapter3

RocketMQ实现顺序消息 实际开发中如果没有顺序消费的必要需求,不建议使用顺序消费,顺序消费是单线程的效率比较低。 代码示例 -------生产者 生产者主要设置队列选择器在里面写选择队列的逻辑,通过取模进行选取, rocketMQTempla…

easyExcel单元格换行

1、单元格数据样例: 你好\r\n大家好\r\n 2、增加单元格拦截器 /*** excel换行符处理*/ Slf4j public class WrapCellWriteHandler implements CellWriteHandler {Overridepublic void afterCellDispose(CellWriteHandlerContext context) {Cell cell context.get…