Elasticsearch之联想词示例
public class LianXiangWord { private static RestClient client; static { client=RestClient.builder(new HttpHost("localhost",9200,"http")).build(); } public static void main(String[] args) throws Exception { // LianXiangWorld("手机苹果",12); // SearchLianXiangWorld("手"); SearchLianXiangWorld("手"); } /** * 1.插入联想词 * @param content * @param weight * @throws Exception */ public static void LianXiangWorld(String content, int weight) throws Exception { Map<String, String> params = Collections.emptyMap(); Map<String, Object> map = new HashMap<>(); Map<String, Object> map2 = new HashMap<>(); map.put("input", content); map.put("weight", weight); map2.put("content", map); String jsonString = Tool.map2Json(map2); HttpEntity entity = new NStringEntity(jsonString, ContentType.APPLICATION_JSON); Response response = client.performRequest("POST", "/suggester_sku/doc", params, entity); System.out.println(response); } /** * 2.查看联想词 * @throws Exception */ @Test public void QueryLianXiangWorld() throws Exception { 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.<String, String>emptyMap(),entity); System.out.println(EntityUtils.toString(response.getEntity())); } /** * 3.搜索联想词 */ public static void SearchLianXiangWorld(String text) throws IOException { Map<String, String> params = Collections.emptyMap(); Map<String, Object> map = new HashMap<>(); Map<String, Object> map1 = new HashMap<>(); Map<String, Object> map2 = new HashMap<>(); Map<String, Object> 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 = new NStringEntity(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 * @throws Exception */ @Test public void CreateDocument()throws Exception{ String method = "POST"; String endpoint = "/suggester_sku/doc/_mapping"; Map<String, Object> map = new HashMap<>(); Map<String, Object> map2 = new HashMap<>(); Map<String, Object> map3 = new HashMap<>(); map.put("type", "completion"); map2.put("content", map); map3.put("properties", map2); String jsonString = Tool.map2Json(map3); HttpEntity entity = new NStringEntity(jsonString, ContentType.APPLICATION_JSON); Response response = client.performRequest(method,endpoint, Collections.<String, String>emptyMap(),entity); System.out.println(EntityUtils.toString(response.getEntity())); } }
程序员的眼里,不止有代码和bug,还有诗与远方和妹子!!!