0

您好,我在使用 solr 查询结果时遇到了奇怪的错误。现在我添加一个简单的 txt 文件,其中包含一个单词“anna”,重新启动 solr 服务器,然后尝试搜索该文档。但我没有任何结果?但是如果我添加另一个内容为“anna”的文档,然后重新启动 solr。我只有一个结果。所以 solr 中有一个错误,或者我不知道什么?

我正在使用卢克,一切都很好,我有两个索引文档,当我使用卢克尝试这个查询时,一切都很好,我得到了 2 个结果。我也在检查我的 for 循环,但一切都很好。所以也许 solrj 有问题?我正在使用 solr-core 和 solrj ver 4.4.0。这是我的代码:

  QueryResponse qr;
        try {
            qr = fs.execute(solrServer);



            System.out.println("QYERY RESPONSE : " + qr);

            for (Entry<String, Object> r : qr.getResponse()) {
                System.out.println("RESPONSE: " + r.getKey() + " -> " + r.getValue());
            }
            SolrDocumentList dl = qr.getResults();
            System.out.println("--RESULT SIZE:[ " + dl.size() );


        } catch (SolrServerException e) {
            e.printStackTrace();
        }

这很奇怪,因为这是我的系统输出:

{ numFound=2 ,start=1,docs=[SolrDocument{file_id=9882, file_name=luk-search2.txt, file_create_user=-1, file_department=10, file_mime_type=text/plain, file_extension=.txt, file_parents_folder=[5021 , 4781, 341, -20, -1], 版本=1442647024934584320}]}

找到的数字是 2,但我只有一个结果,所以 solrj 库中存在错误?

4

1 回答 1

1

In looking at the response, it shows a start=1 value that is being passed in. The default value for start is 0, please see the CommonQueryParameters for reference. Since you only have two results for your query, and the start value is zero based, by specifying start=1 you are asking for only the second document. Change this parameter to start=0 and you will get both results back.

于 2013-08-07T01:51:25.847 回答