java 中的引擎_Java中使用ES引擎

一:在springboot中引入ES,需要安装配置(后面再补)

二:使用说明

场景:用户端输入信息,使用ES引擎获取相关数据。

(1)存储用户输入的查询信息,params

Map params = new HashMap<>();

params.put("location",location);

params.put("searchParam",inputStr);

582aff362610bc16e853b9ea20b37bb3.png

(2)向ES传入用户输入的参数params

ClientInterface clientUtil = bossESStarter.getConfigRestClient("mapper/es/questionAns.xml"); //xml文件中配置了查询语句

MapRestResponse response = null;

response = clientUtil.search("questionans/_search","getSelected",params);//第一个参数是索引和使用查询,第二个参数是调用的查询方法。

8569cdca18aeb366068b6d561b67b9a2.png

(3)对返回结果进行处理,得到resultList链表。

MapSearchHits searchHits =response.getSearchHits();

//命中的数量

Integer total = (Integer) searchHits.getTotal();

//获取的数据如下

List hitlist = searchHits.getHits();

//创建结果

List resultList = new ArrayList<>();

//需要获取哪些数据

hitlist.forEach(

value->

{

resultList.add(value.getSource());

}

);

1e8da182aa91e1fd435f689b3e63a0d3.png

最后,附上xml文件。这里值得解释的是,ES的语法。

bool 过滤

bool 过滤可以用来合并多个过滤条件查询结果的布尔逻辑,它包含一下操作符:

must :: 多个查询条件的完全匹配,相当于 and。

must_not :: 多个查询条件的相反匹配,相当于 not。

should :: 至少有一个查询条件匹配, 相当于 or。

下图中的语句,表示输入的location要完全匹配。输入的searchParam匹配问题和答案之中的一个就可以了。

30ab5da283ea9663b22c5115f090417a.png

在上图的语句中加入一个location是否为*的判定,如果location是* 的话,要求通配所有的location。

89485d91f6a920002c66d86709ac336c.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值