今天做在线商城项目的时候遇到一个报错
This application has no explicit mapping for /error, so you are seeing this as a fallback.

错误描述:
一开始是访问商城首页,然后按照页面显示的一些条件:(比如,手机、cpu、品牌什么的)去点击,然后过滤条件,其他的条件每选一个,url都会响应的加上“&”并后面跟上相应的对象和值,但是点击brandId的时候就不跳转,报了上图错误。
报错的字面意思就是没有清晰映射,本来以为是ControllerAdvice层的问题,找了一圈,没啥发现,看到下面的报错信息是:Elasticsearch exception,
大概率是DSL语法错误,看了一下代码,果然,我将termsQuery写成了termQuery,
boolQuery.filter(QueryBuilders.termsQuery("brandId", param.getBrandId()));
term query 的使用场景
一般用于检索不会被分词的字段,主要是类型为:integer、keyword、boolean 的字段。用于查询符合某一个关键字的文档。
terms query 等价于mysql 的 in(),用于检索符合一定范围内的文档。
在开发在线商城项目时,遇到一个错误提示缺少对/error的明确映射。问题出现在过滤条件brandId时,由于误将termsQuery写为termQuery,导致DSL查询语句错误。termQuery适用于不被分词的字段,而termsQuery则用于匹配多个值,类似于SQL的IN操作。修正DSL语法后,brandId过滤功能恢复正常。
1万+

被折叠的 条评论
为什么被折叠?



