es做搜索工具时中英文混合的情况会查询不出来内容

因为es会对搜索条件做分词处理,所以就会导致es查询的内容不是想要的
不过可以是有script的方式查询,但是效率很低很慢

方式一:

   // 创建一个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);

方式二:

 boolQuery.must(QueryBuilders.wildcardQuery("plateNo.keyword", "*" + queryParam.getFieldValue().toString() + "*"));
版权声明 ▶ 本网站名称:我的学习笔记
▶ 本文链接:https://ooolo.net/article/479.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!!

none
最后修改于:2024年04月18日 13:48

添加新评论

icon_mrgreen.pngicon_neutral.pngicon_twisted.pngicon_arrow.pngicon_eek.pngicon_smile.pngicon_confused.pngicon_cool.pngicon_evil.pngicon_biggrin.pngicon_idea.pngicon_redface.pngicon_razz.pngicon_rolleyes.pngicon_wink.pngicon_cry.pngicon_surprised.pngicon_lol.pngicon_mad.pngicon_sad.pngicon_exclaim.pngicon_question.png