es做搜索工具时中英文混合的情况会查询不出来内容 Published on Apr 18, 2024 in 随笔 with 0 comment 因为es会对搜索条件做分词处理,所以就会导致es查询的内容不是想要的 不过可以是有script的方式查询,但是效率很低很慢 方式一: ```java // 创建一个Script,用于执行模糊匹配 Script script = new Script(ScriptType.INLINE, "painless", "doc['plateNo.keyword'].value.contains(params.query)", Collections.singletonMap("query", queryParam.getFieldValue().toString())); // 创建一个ScriptQueryBuilder,并将其包装在BoolQueryBuilder中,你也可以根据需求构建其他类型的查询 ScriptQueryBuilder scriptQuery = QueryBuilders.scriptQuery(script); boolQuery.must(scriptQuery); ``` 方式二: ```java boolQuery.must(QueryBuilders.wildcardQuery("plateNo.keyword", "*" + queryParam.getFieldValue().toString() + "*")); ``` 本文由 admin 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。