首页
学习
活动
专区
圈层
工具
发布

Solrj全选
EN

Stack Overflow用户
提问于 2012-06-22 01:05:58
回答 3查看 2.6K关注 0票数 0

我在通过Solrj (运行Tomcat)选择我的25个文档Solr (3.6)索引中的所有内容时遇到问题。

代码语言:javascript
复制
public static void main(String[] args) throws MalformedURLException, SolrServerException { 

        SolrServer solr = new HttpSolrServer("http://localhost:8080/solr");
        ModifiableSolrParams parameters = new ModifiableSolrParams();
        parameters.set("?q", "*:*");
        parameters.set("wt", "json");

        QueryResponse response = solr.query(parameters);
            System.out.println(response); 
    }

我得到的结果是:

代码语言:javascript
复制
{responseHeader={status=0,QTime=0,params={?q=*:*,wt=javabin,version=2}},response={numFound=0,start=0,docs=[]}}

还有,如果我把"?“在parameters.set("?q", "*:*");之外,我必须终止编译,否则它会超时。如果我将

代码语言:javascript
复制
"*:*"

使用just

代码语言:javascript
复制
"*"

此外,我已经尝试了parameters.set("qt", "/select");,但没有效果。

如何通过Solrj选择全部并实际获得结果?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-26 22:17:29

我不确定为什么这样做是可行的,但在失败了100个想法后,这个想法采取了:

代码语言:javascript
复制
public static void main(String[] args) throws MalformedURLException, SolrServerException { 

        SolrServer solr = new HttpSolrServer("http://localhost:8080/solr");
        ModifiableSolrParams parameters = new ModifiableSolrParams();
          parameters.set("q", "*:*"); //query everything thanks to user1452132!
          parameters.set("facet", true);//without this I cant select all
          parameters.set("fl", "id");//send back just the id values
          parameters.set("wt", "json");//Id like this in json format please

        QueryResponse response = solr.query(parameters);
            System.out.println(response); 
    }

希望这能对外面的人有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2012-06-22 03:51:39

您应该使用"q“作为参数,下面是正确的语法。

代码语言:javascript
复制
parameters.set("?q", "*:*");

它返回"?q“的原因是因为没有要运行的查询,所以它返回得很快。

首先,请通过浏览器进行测试。您还可以设置要返回的行数,这样就不会返回很大的结果集。

代码语言:javascript
复制
parameters.set("rows", 5);

solr查询返回后,您必须对结果进行分页。如果你有一个很大的集合,你将不能一下子检索到所有的集合。

票数 1
EN

Stack Overflow用户

发布于 2013-04-12 16:04:45

我认为每当你引用SolrServer对象时,你也应该尝试指定你的核心,也就是写下

代码语言:javascript
复制
SolrServer solr = new HttpSolrServer("http://localhost:8080/solr/collection1");

其中,collection1是要使用的内核的名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11143188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档