第四步 eclipse实现solr客户端

1、创建solr客户端:

先导入包,把apache-solr-4.0.0\dist下的apache-solr

-dataimporthandler-4.0.0.jar 和 apache-solr-dataimporthandler-extras-4.0.0.jar复制到

WebRoot\WEB-INF\lib下

或是pom.xml文件添加

<!-- -搜索依赖 -->
<dependency>
    <groupId>org.apache.solr</groupId>
    <artifactId>solr-solrj</artifactId>
    <version>4.7.2</version>
</dependency>

2、创建一个SolrJSearcheDemo类

import java.net.MalformedURLException;

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;

public class SolrJSearcheDemo {
	
	 /**
     * Solr访问地址
     */
    private static final String SOLR_URL ="http://localhost:8080/solr/";
    
    // 通过网络地址获取SolrServer对象
    public SolrServer getSolrServer() throws MalformedURLException {
        return new HttpSolrServer(SOLR_URL);
    }
    
    // 查询方法
    public void search(String key) throws MalformedURLException{
        SolrServer solrServer = getSolrServer();
        // 查询对象
        SolrQuery query = new SolrQuery(key);
        query.setQuery(key);    
        try {
            query.setHighlight(true)
                //设置开头
                .setHighlightSimplePre("<span class=’highlight’>") 
                .setHighlightSimplePost("</span>") //设置结尾 
                .setStart(0)
                .setRows(10);//设置行数 
            //设置高亮的哪些区域   
            query.setParam("hl.fl", "content");
            QueryResponse response=solrServer.query(query);
            SolrDocumentList list=response.getResults();
            
            System.out.println("高亮显示:");
            for(SolrDocument sd:list){
                String id=(String) sd.getFieldValue("id");
                if(response.getHighlighting().get(id)!=null){
                    System.out.println(response.getHighlighting().get(id).get("content"));
                }
            }
            
            System.out.println("——————————————");
            
            SolrDocumentList docs = response.getResults();
            System.out.println("文档个数:" + docs.getNumFound());
            System.out.println("查询时间:" + response.getQTime()); 
            System.out.println("——————————————–");
            
            for (SolrDocument doc : docs) {
            	
                // 获取查询返回结果
                String id = doc.getFieldValue("id").toString();
                String title = doc.getFirstValue("title").toString();
                String content = doc.getFirstValue("content").toString();
                   
                // 打印查询结果   
                System.out.println("编号:"+id);
                System.out.println("标题:"+title);
                System.out.println("内容: "+content);
           
                System.out.println("—————————————-");
                   
            }
  
        } catch (SolrServerException e) {
             e.printStackTrace();
        }
    }


    public static void main(String[] args) throws MalformedURLException {

        // 创建一个SolrJSearcheDemo对象   
        SolrJSearcheDemo sj = new SolrJSearcheDemo();   
        // 查询条件   
        String Query ="生活";
        // 调用查询方法 
        sj.search(Query);
    }
	
	
}


技术分享

本文出自 “江山如画待赢归” 博客,谢绝转载!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。