如何从 Solr 获取整个数据
How to get whole data from Solr
我必须在 Java 中编写一些逻辑,它应该从 Solr 检索所有索引数据。
目前我是这样做的
String confSolrUrl = "http://localhost/solr/master/select?q=*%3A*&wt=json&indent=true"
LOG.info(confSolrUrl);
url = new URL(confSolrUrl);
URLConnection conn = url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
//save to this filename
String fileName = "/qwertyuiop.html";
File file = new File(fileName);
if (!file.exists())
{
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
while ((inputLine = br.readLine()) != null) {
bw.write(inputLine);
}
bw.close();
br.close();
System.out.println("Done");
在我的文件中,我将获得整个 HTML
文件,我可以解析和提取我的 JSON
。
有没有更好的方法呢?
而不是从 url 获取资源并解析它?
我刚刚写了一个应用程序来做这个,看看github:https://github.com/freedev/solr-import-export-json
如果你想从 solr 集合中读取所有数据,你面临的第一个问题是分页,在这种情况下我们谈论的是深度分页。
像您这样的直接 http 请求将 return 相对较少的文档。您甚至可以在 solr 集合中拥有数百万或数十亿个文档。
所以你应该使用正确的 API,即 Solrj。
在我的项目中,我刚刚做到了。
我必须在 Java 中编写一些逻辑,它应该从 Solr 检索所有索引数据。
目前我是这样做的
String confSolrUrl = "http://localhost/solr/master/select?q=*%3A*&wt=json&indent=true"
LOG.info(confSolrUrl);
url = new URL(confSolrUrl);
URLConnection conn = url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
//save to this filename
String fileName = "/qwertyuiop.html";
File file = new File(fileName);
if (!file.exists())
{
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
while ((inputLine = br.readLine()) != null) {
bw.write(inputLine);
}
bw.close();
br.close();
System.out.println("Done");
在我的文件中,我将获得整个 HTML
文件,我可以解析和提取我的 JSON
。
有没有更好的方法呢? 而不是从 url 获取资源并解析它?
我刚刚写了一个应用程序来做这个,看看github:https://github.com/freedev/solr-import-export-json
如果你想从 solr 集合中读取所有数据,你面临的第一个问题是分页,在这种情况下我们谈论的是深度分页。
像您这样的直接 http 请求将 return 相对较少的文档。您甚至可以在 solr 集合中拥有数百万或数十亿个文档。 所以你应该使用正确的 API,即 Solrj。
在我的项目中,我刚刚做到了。