【问题标题】:How to get whole data from Solr如何从 Solr 获取全部数据
【发布时间】:2017-01-19 11:35:25
【问题描述】:

我必须用 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 中获取资源并解析它?

【问题讨论】:

  • 索引是什么意思? solr 索引由多个二进制文件组成
  • 我的意思是当您转到“查询”下的仪表板并搜索全部时检索的文件。您将获得所有索引的 JSON 结果
  • 喜欢这里的代码吗?使用 SolrJ 搜索 - solrtutorial.com/solrj-tutorial.html
  • 我的意思是如何从 solr 获取 JSON 格式的所有索引文件?可以通过空搜索来实现吗?
  • 好的,你想提取 JSON 格式的整个索引,这就是问题

标签: java search solr solrj


【解决方案1】:

我刚刚写了一个应用来做这个,看看github:https://github.com/freedev/solr-import-export-json

如果您想从 solr 集合中读取所有数据,您面临的第一个问题是分页,在这种情况下,我们谈论的是深度分页。

像您这样的直接 http 请求将返回相对少量的文档。您甚至可以在 solr 集合中拥有数百万或数十亿个文档。 所以你应该使用正确的 API,即Solrj

在我的项目中,我刚刚做到了。

我还建议阅读以下内容: https://lucidworks.com/blog/2013/12/12/coming-soon-to-solr-efficient-cursor-based-iteration-of-large-result-sets/

【讨论】:

  • 好用又方便的工具
猜你喜欢
  • 2011-08-27
  • 1970-01-01
  • 2016-02-28
  • 1970-01-01
  • 2013-07-24
  • 2018-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多