我们正在spring boot开发一个弹性搜索应用程序。我们不能使用弹性搜索提供的Java API或Java Rest客户端API。相反,我们需要使用spring的rest模板在弹性中进行操作,但是弹性似乎不接受来自rest客户端的索引请求,我们得到了“不接受”的回复。如果有人给我们一些提示或信息,我真的很感激。
弹性版:5.6
试试这个。它适用于通过HTTP API使用HTTPURLConnection对文档进行索引。
URL obj = new URL("http://localhost:9200/index/type");
String json = "{\n" +
" \"user\" : \"kimchy\",\n" +
" \"post_date\" : \"2009-11-15T14:12:12\",\n" +
" \"message\" : \"trying out Elasticsearch\"\n" +
"}";
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setDoInput(true);
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream());
osw.write(json);
osw.flush();
osw.close();
System.out.println(con.getResponseCode() + " : " + con.getResponseMessage());
if (con != null)
con.disconnect();
使用HttpurlConnection进行简单搜索。
URL obj = new URL("http://localhost:9200/index/type/_search");
String json = "{\n" +
" \"query\": {\n" +
" \"match_all\": {}\n" +
" }\n" +
"}";
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setDoInput(true);
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream());
osw.write(json);
osw.flush();
osw.close();
BufferedReader br = new BufferedReader(new InputStreamReader((con.getInputStream())));
System.out.println("Response : " + br.readLine());
System.out.println(con.getResponseCode() + " : " + con.getResponseMessage());
if (con != null)
con.disconnect();
通过以下命令,我可以查看弹性搜索部署的endpoint,并且从Postman那里没有任何问题:GET https://:@d97215aee2.us-east-1.aws.found.io:9243 我也可以使用邮递员的这个命令创建索引...将https://el弹力:4yqimxfosz9mxpgy1fj7t5bu@d97218f74f6d48489b355dd7d665aee2.us-east
我们计划为我们的多租户应用引入弹性搜索(AWS)。我们有以下几种选择, 每个租户使用一个索引 每个租户使用一种类型 所有租户与自定义路由共享一个索引 根据这个博客https://www.elastic.co/blog/found-multi-tenancy第一个选项会导致内存问题。但不清楚还有其他选择。 似乎如果我们使用第三个选项,那么就没有数据分离。不确定安全性。 我相信第二种选择会更好,因为数
我正在尝试将我的弹性搜索(6.6.1)、spring boot(2.1.3)应用程序从Java8迁移到Java11。之前,我使用高级java rest客户端创建和搜索索引。因为存在一个问题(https://github.com/elastic/elasticsearch/issues/38299)在模块化高级rest客户端api时,我试图使用低级rest客户端,但无法获得任何搜索结果。 请看一些代
我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢
我使用Elasticsearch允许用户输入要搜索的术语。例如,我要搜索以下属性'name': 如果使用以下代码搜索或,我希望返回此文档。 我尝试过做一个bool must和做多个术语,但它似乎只有在整个字符串都匹配的情况下才起作用。 所以我真正想做的是,这个词是否以任何顺序包含两个词。 有人能帮我走上正轨吗?我已经在这上面砸了一段时间了。
在es中搜索时,如何使用spring的rest模板或elasticsearch自己的高/低rest客户端,我左右为难。与spring rest模板相比,es客户端是否提供了HTTP连接池、性能等方面的任何优势。这两个模板中的哪一个在从服务器获取响应时花费的时间更少。请有人解释一下?