zoukankan      html  css  js  c++  java
  • solr QueryResponse

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

    最近写了这样的一段代码,

    ·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
    1. SolrDocumentList sdl = response.getResults();  
    2.         len = (int) sdl.getNumFound();  
    3.         System.out.println(len);  
    4.         for(int i = 0; i < len; i++)  
    5.         {  
    6.             SolrDocument d = sdl.get(i);  
    7.             for(Iterator<Map.Entry<String, Object>> j = d.iterator(); j.hasNext(); )  
    8.             {  
    9.                 hits.add((String)(  j.next().getValue() ) );  
    10.             }  
    11.         }  

    结果出现: index out of boundary的错误。原来getNumFound获得的是整个的查询数量。

    而sdl中仅仅包含在查询参数rows指定的文档个数。而rows默认是10,所以这里就出现越界错误了。

    改成这样就没有问题了:

    ·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
    1. SolrDocumentList sdl = response.getResults();  
    2.         len = (int) sdl.getNumFound();  
    3.         System.out.println(len);  
    4.         for(int i = 0; i < perPage; i++)  
    5.         {  
    6.             SolrDocument d = sdl.get(i);  
    7.             for(Iterator<Map.Entry<String, Object>> j = d.iterator(); j.hasNext(); )  
    8.             {  
    9.                 hits.add((String)(  j.next().getValue() ) );  
    10.             }  
    11.         }  

    新的项目基于solr开发,搜索更加灵活,更加方便了用户。

  • 相关阅读:
    数组-11. 猴子选大王
    *数组-10. 求整数序列中出现次数最多的数
    数组-07. 求一批整数中出现最多的个位数字
    *数组-05. 字符串字母大小写转换
    数组-04. 查找整数
    《结对-网页贪吃蛇-最终程序》
    Forward团队-爬虫豆瓣top250项目-项目进度
    《结对-HTML贪吃蛇游戏项目-测试过程》
    课后作业-阅读任务-阅读提问-2
    《20171005-构建之法:现代软件工程-阅读笔记》
  • 原文地址:https://www.cnblogs.com/wycg1984/p/1567551.html
Copyright © 2011-2022 走看看