xiaoyu28 发表于 2015-7-17 10:41:18

solr QueryResponse

  最近开发,使用了solr,发现这个东东真是方便。很早就听说了,但是一直觉得配置较难,而且需要学习封装后的组件本来就要费时间,所以知道将lucene弄个熟练后才开始学习solr。
  最近写了这样的一段代码,



view plaincopy to clipboardprint?

·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
[*]SolrDocumentList sdl = response.getResults();
[*]      len = (int) sdl.getNumFound();
[*]      System.out.println(len);
[*]      for(int i = 0; i < len; i++)
[*]      {
[*]            SolrDocument d = sdl.get(i);
[*]            for(Iterator j = d.iterator(); j.hasNext(); )
[*]            {
[*]                hits.add((String)(j.next().getValue() ) );
[*]            }
[*]      }
SolrDocumentList sdl = response.getResults(); len = (int) sdl.getNumFound(); System.out.println(len); for(int i = 0; i < len; i++) { SolrDocument d = sdl.get(i); for(Iterator j = d.iterator(); j.hasNext(); )             {               hits.add((String)(j.next().getValue() ) );             } }  结果出现: index out of boundary的错误。原来getNumFound获得的是整个的查询数量。
  而sdl中仅仅包含在查询参数rows指定的文档个数。而rows默认是10,所以这里就出现越界错误了。
  改成这样就没有问题了:



view plaincopy to clipboardprint?

·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
[*]SolrDocumentList sdl = response.getResults();
[*]      len = (int) sdl.getNumFound();
[*]      System.out.println(len);
[*]      for(int i = 0; i < perPage; i++)
[*]      {
[*]            SolrDocument d = sdl.get(i);
[*]            for(Iterator j = d.iterator(); j.hasNext(); )
[*]            {
[*]                hits.add((String)(j.next().getValue() ) );
[*]            }
[*]      }
SolrDocumentList sdl = response.getResults(); len = (int) sdl.getNumFound(); System.out.println(len); for(int i = 0; i < perPage; i++) { SolrDocument d = sdl.get(i); for(Iterator j = d.iterator(); j.hasNext(); )             {               hits.add((String)(j.next().getValue() ) );             } }  新的项目基于solr开发,搜索更加灵活,更加方便了用户。
页: [1]
查看完整版本: solr QueryResponse