绊脚石乃是进身之阶。

关于**查询不到结果的问题

Elasticsearch | 作者 Goldfarb | 发布于2021年06月26日 | 阅读数:915

使用SpringData-Elasticsearch --> Criteria 构建查询,其中CONTAINS条件下生成如下语句
{"from":0,"size":5,"query":{"bool":{"must":[{"query_string":{"query":"*张三丰*","fields":["patBaseInfoList.outpatInfoList.patName^1.0"],"type":"best_fields","default_operator":"or","max_determinized_states":10000,"enable_position_increments":true,"fuzziness":"AUTO","fuzzy_prefix_length":0,"fuzzy_max_expansions":50,"phrase_slop":0,"analyze_wildcard":true,"escape":false,"auto_generate_synonyms_phrase_query":true,"fuzzy_transpositions":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"version":true,"_source":{"includes":["id","patName"],"excludes":}}。
查询不到结果。
这里的特点是,当查询单个字,比如 *张* 时,可以查到结果;查询多个字 *张三*或*张三丰* 时,则无结果。

spring-data-elasticsearch 版本 4.1.6
elasticsearch 版本 7.12.0
 
已邀请:

Goldfarb

赞同来自:

问题源于默认mapping的type是text,而spring这一套需要的type是keyword,半年了......

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

一般类似的问题把DSL和mapping打印出来,所有的问题都一目了然了。

要回复问题请先登录注册