java 关键词联想_Elasticsearch之联想词示例

该博客演示了如何使用Java和Elasticsearch创建关键词联想功能。通过`LianXiangWorld`方法插入联想词,`QueryLianXiangWorld`方法查询联想词,`SearchLianXiangWorld`方法进行搜索,以及`CreateDocument`方法初始化completion索引。示例展示了如何处理HTTP请求并打印响应。
摘要由CSDN通过智能技术生成

public classLianXiangWord {private staticRestClient client;static{

client=RestClient.builder(new HttpHost("localhost",9200,"http")).build();

}public static void main(String[] args) throwsException {//LianXiangWorld("手机苹果",12);//SearchLianXiangWorld("手");

SearchLianXiangWorld("手");

}/*** 1.插入联想词

*@paramcontent

*@paramweight

*@throwsException*/

public static void LianXiangWorld(String content, int weight) throwsException {

Map params =Collections.emptyMap();

Map map = new HashMap<>();

Map map2 = new HashMap<>();

map.put("input", content);

map.put("weight", weight);

map2.put("content", map);

String jsonString=Tool.map2Json(map2);

HttpEntity entity= newNStringEntity(jsonString, ContentType.APPLICATION_JSON);

Response response= client.performRequest("POST", "/suggester_sku/doc", params, entity);

System.out.println(response);

}/*** 2.查看联想词

*@throwsException*/@Testpublic void QueryLianXiangWorld() throwsException {

String method= "POST";

String endpoint= "/suggester_sku/_search/";

HttpEntity entity= new NStringEntity("{\n" +

" \"query\": {\n" +

" \"match_all\": {}\n" +

" }\n" +

"}", ContentType.APPLICATION_JSON);

Response response= client.performRequest(method,endpoint, Collections.emptyMap(),entity);

System.out.println(EntityUtils.toString(response.getEntity()));

}/*** 3.搜索联想词*/

public static void SearchLianXiangWorld(String text) throwsIOException {

Map params =Collections.emptyMap();

Map map = new HashMap<>();

Map map1 = new HashMap<>();

Map map2 = new HashMap<>();

Map map3 = new HashMap<>();

map3.put("field", "content");

map3.put("skip_duplicates", true);

map3.put("field", 10);

map2.put("prefix", text);

map2.put("completion", map3);

map1.put("my-suggest", map2);

map.put("suggest", map1);

String jsonString=Tool.map2Json(map);

System.out.println(jsonString);

HttpEntity entity= newNStringEntity(jsonString, ContentType.APPLICATION_JSON);

Response response= client.performRequest("GET", "/suggester_sku/doc/_search", params, entity);

String responseBody=EntityUtils.toString(response.getEntity());

System.out.println(responseBody);

}/*** 4.初始化completion

*@throwsException*/@Testpublic void CreateDocument()throwsException{

String method= "POST";

String endpoint= "/suggester_sku/doc/_mapping";

Map map = new HashMap<>();

Map map2 = new HashMap<>();

Map map3 = new HashMap<>();

map.put("type", "completion");

map2.put("content", map);

map3.put("properties", map2);

String jsonString=Tool.map2Json(map3);

HttpEntity entity= newNStringEntity(jsonString, ContentType.APPLICATION_JSON);

Response response= client.performRequest(method,endpoint, Collections.emptyMap(),entity);

System.out.println(EntityUtils.toString(response.getEntity()));

}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值