博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ES Java API_基于search template实现按品牌分页查询模板
阅读量:5978 次
发布时间:2019-06-20

本文共 1993 字,大约阅读时间需要 6 分钟。

hot3.png

 

 

 

 

 

搜索模板的功能,java api怎么去调用一个搜索模板

page_query_by_brand.mustache

{

"from": {

{from}},

"size": {

{size}},

"query": {

"match": {

"brand.keyword": "{

{brand}}"

}

}

}

 

SearchResponse sr = new SearchTemplateRequestBuilder(client)

.setScript("page_query_by_brand")

.setScriptType(ScriptService.ScriptType.FILE)

.setScriptParams(template_params)

.setRequest(new SearchRequest())

.get()

.getResponse();

 

package com.roncoo.es.senior;

import java.net.InetAddress;

import java.util.HashMap;

import java.util.Map;

import org.elasticsearch.action.search.SearchRequest;

import org.elasticsearch.action.search.SearchResponse;

import org.elasticsearch.client.transport.TransportClient;

import org.elasticsearch.common.settings.Settings;

import org.elasticsearch.common.transport.InetSocketTransportAddress;

import org.elasticsearch.script.ScriptType;

import org.elasticsearch.script.mustache.SearchTemplateRequestBuilder;

import org.elasticsearch.search.SearchHit;

import org.elasticsearch.transport.client.PreBuiltTransportClient;

 

public class SearchTemplatePageQuery {

@SuppressWarnings({ "resource", "unchecked" })

public static void main(String[] args) throws Exception {

Settings settings = Settings.builder()

.put("cluster.name", "elasticsearch")

.build();

TransportClient client = new PreBuiltTransportClient(settings)

.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));

Map<String, Object> scriptParams = new HashMap<String, Object>();

scriptParams.put("from", 0);

scriptParams.put("size", 1);

scriptParams.put("brand", "宝马");

SearchResponse searchResponse = new SearchTemplateRequestBuilder(client)

.setScript("page_query_by_brand")

.setScriptType(ScriptType.FILE)

.setScriptParams(scriptParams)

.setRequest(new SearchRequest("car_shop").types("sales"))

.get()

.getResponse();

for(SearchHit searchHit : searchResponse.getHits().getHits()) {

System.out.println(searchHit.getSourceAsString());

}

client.close();

}

}

 

转载于:https://my.oschina.net/zhongwenhao/blog/1622547

你可能感兴趣的文章
python学习笔记(05)
查看>>
路由器NAT网络地址转换
查看>>
checkbox全选,全不选
查看>>
7、文档元素
查看>>
linux下的连接文件——软连接和硬连接的区别
查看>>
怎么查看linux文件夹下有多少个文件(mac同样)
查看>>
cacti监控一览无余
查看>>
第十六章--访问文件
查看>>
ASP.NET MVC学前篇之Ninject的初步了解
查看>>
对缓存击穿的一点思考
查看>>
SQL提高及优化
查看>>
Python自动化开发学习15-css补充内容
查看>>
解析find用法
查看>>
JAVA BIO 服务器与客户端实现示例
查看>>
使用Denyhost来阻止恶意连接SSH的IP
查看>>
Java: System.exit() 与安全策略
查看>>
强制杀oracle进程
查看>>
《Cisco IPv6网络实现技术(修订版)》一2.6 配置练习:使用Cisco路由器配置一个IPv6网络...
查看>>
《可穿戴创意设计:技术与时尚的融合》一一第2章 与可穿戴设备有关的故事...
查看>>
ruby动态new对象
查看>>