java程序中连接solr并设置参数等

public List getUrlResults(List<String> strList,String serverUrl,pageResult result)throws MalformedURLException, SolrServerException{
        HttpSolrServer  server=new HttpSolrServer(serverUrl);//serverUrl 表示要连接的网址
        List<String> urls=new ArrayList<String>();
        if(strList.size()>0){
            for(int i=0;i<strList.size();i++){
                ModifiableSolrParams params = new ModifiableSolrParams();
                params.set("q", strList.get(i));//*.* 表示查询条件
                //params.set("defType", "edismax");
                params.set("start", "0");//查询开始的索引
                //params.set("df", "content");//设置查询的范围
                params.set("fl", "url");//设置查询返回的结果
                result.setPageSize(getFoundNums(strList.get(i).toString(), serverUrl));
                params.set("rows",result.getPageSize());
                //params.set("df","url");

                QueryResponse solrResponse;
                try {
                    solrResponse = server.query(params);
                    SolrDocumentList results = solrResponse.getResults();
                    for (SolrDocument solrDocument:results) {
                        String url = (String) solrDocument.getFieldValue("url");
                        urls.add(url);
                    }
                } catch (SolrServerException e) {
                    e.printStackTrace();
                }

            }
        }

        return urls;
    }

    public List<NewsInfo> getResultsByRule(List<String> ruleList,String serverUrl)throws MalformedURLException, SolrServerException{
        HttpSolrServer  server=new HttpSolrServer(serverUrl);
        List<NewsInfo> urls=new ArrayList<NewsInfo>();
        if(ruleList.size()>0){
            for(int i=0;i<ruleList.size();i++){
                ModifiableSolrParams params = new ModifiableSolrParams();
                params.set("q", ruleList.get(i));//*.*
                //params.set("defType", "edismax");
                params.set("start", "0");
                params.set("df", "all");
                params.set("fl", "title description ntime url sourceid id");//return fields
                //params.set("rows",2);
                //params.set("df","url");
                QueryResponse solrResponse;
                try {
                    solrResponse = server.query(params);
                    SolrDocumentList results = solrResponse.getResults();            Integer counts = results.getNumFound(); //获取查找到的总条数
                    for (SolrDocument solrDocument:results) {
                        NewsInfo news=new NewsInfo();
                        news.setDescription((String)solrDocument.getFieldValue("description"));
                        news.setTitle(solrDocument.getFieldValue("title").toString());
                        news.setUrl((String)solrDocument.getFieldValue("url"));
                        news.setnTime(solrDocument.getFieldValue("ntime").toString());
                        Integer j=Integer.valueOf(((ArrayList)solrDocument.getFieldValue("sourceid")).get(0).toString());
                        news.setSourceId(j);
                        news.setId(Integer.valueOf(solrDocument.getFieldValue("id").toString()));
                        urls.add(news);
                    }
                } catch (SolrServerException e) {
                    e.printStackTrace();
                }

            }
        }
        return urls;
    }
时间: 2024-08-29 13:10:32

java程序中连接solr并设置参数等的相关文章

JAVA程序中SQL语句无法传递中文参数

vi /etc/my.cnf [mysqld]# The default character set that will be used when a new schema or table is# created and no character set is defineddefault-character-set=utf8

java程序中的经常出现的的异常处理课后总结

一.JDK中常见的异常情况 1.常见异常总结图 2.java中异常分类 Throwable类有两个直接子类: (1)Exception:出现的问题是可以被捕获的 (2)Error:系统错误,通常由JVM处理 3.被捕获的异常分类 (1)Check异常: 派生自Exception的异常类,必须被捕获或再次声明抛出 (2)Runtime异常:派生自RuntimeException的异常类.使用throw语句可以随时抛出这种异常对象 throw new ArithmeticException(…);

真正的Derby新手教程,Derby安装,创建数据库,在Java程序中使用Derby

1,下载并安装Derby: 下载地址:http://db.apache.org/derby /derby_downloads.html,下载最新版本. 我用的是10.5.3.0. 解压缩到任意文件夹,我的是:E:\Java\Joy\derby 2,配置环境变量: 建立DERBY_HOME,值:E:\Java\Joy\derby\db- derby-10.5.3.0-bin\db-derby-10.5.3.0-bin 在Path加入:%DERBY_HOME%\bin 在CLASSPATH加入:%D

在java程序中访问windows有用户名和密码保护的共享目录

在java程序中访问windows有用户名和密码保护的共享目录 Posted on 2015-11-20 14:03 云自无心水自闲 阅读(3744) 评论(0)  编辑  收藏 --> Java程序中访问拥有全部读写权限的目录相对比较简单,和普通的目录没有什么差别.但是要访问一个需要用户和密码验证的目录就需要一点点小技巧了.这里介绍一个开源的库能够比较容易的实现这一需求.1. 下载库文件: https://jcifs.samba.org/ 下载的zip文件中, 不仅包含了jar文件,还有文档和

如何在Silverlight应用程序中获取ASP.NET页面参数

asp.net Silverlight应用程序中获取载体aspx页面参数 有时候SL应用中需要使用由aspx页面中传递过来的参数值,此时通常有两种方法获取 1. 使用InitParameters属性,动态设置传递参数 . 2. 在SL工程中使用HtmlPage类来直接获取页面参数. 如下面的项目结构,我们会在Default.aspx页面中需要传递两个值到SilverlightTestPage.aspx页面,并且需要在SilverlightTestPage.aspx页面所宿主的Silverligh

SQL函数TIMEDIFF在Java程序中使用报错的问题分析

需求背景 (读者可略过)司机每天从早到晚都会去到不同的自动售货机上补货,而且补货次数和路线等也是因人而异,补货依据是由系统优化并指派.但是目前系统还无法实施有效指挥和优良的补货策略,司机的补货活动因此变得较为随意和散漫.为了有效跟踪司机补货,计算司机补货效率,也为了便于HR月底计算司机绩效,因此提出需求需要根据司机补货记录数据阶段性地计算出补货情况统计值. 需求中指出,按天按司机手机号为统计维度,需要统计司机当天总共补货的机器数(相同机器补多次也只能算一台机器):统计司机当天总共补货的次数(自然

Linux上从Java程序中调用C函数

原则上来说,"100%纯Java"的解决方法是最好的,但有些情况下必须使用本地方法.特别是在以下三种情况: 需要访问Java平台无法访问的系统特性和设备: 通过基准测试,发现Java代码比其他语言编写的等价代码慢得多: 其他语言编写的代码已经经过大量测试和调试,并且知道如何将其导出到所有的目标平台上. Java平台有一个用于和本地C.C++代码进行互操作的API,称为Java本地接口(JNI).下面将举例讨论Linux平台下的JNI编程. 1. 创建java类文件 创建一个native

java程序中sql注入分析及优化方案

先来看看百度百科的解释: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句.比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到sql注入攻击. 1.java程序

Java程序中解决数据库超时与死锁

Java程序中解决数据库超时与死锁 2011-06-07 11:09 佚名 帮考网 字号:T | T Java程序中解决数据库超时与死锁,每个使用关系型数据库的程序都可能遇到数据死锁或不可用的情况,而这些情况需要在代码中编程来解决.本文主要介绍与数据库事务死锁等情况相关的重试逻辑概念. AD: Java程序中解决数据库超时与死锁,每个使用关系型数据库的程序都可能遇到数据死锁或不可用的情况,而这些情况需要在代码中编程来解决;本文主要介绍与数据库事务死锁等情况相关的重试逻辑概念,此外,还会探讨如何避