Solr4:Solr查询结果JSP分页显示(每次查询只返回指定记录数)

1. 要求

要实现的东西是类似于百度的查询:输入关键词,调用Solr接口,将查询结果按照百度的样式展现出来。页面可以参考百度。JSP命名为index.jsp,放置到根目录下,且index.jsp为默认页。这样设置可以实现比如:http://localhost:8080/?q=%E8%8B%8F%E5%B7%9E格式的调用。

2. 引用包

整个Solr项目参考的包,本示范程序用到部分

3. 结果页面样式

Solr4:Solr查询结果JSP分页显示(每次查询只返回指定记录数)

4. 实现JSP代码(将百度页面抓取下来改的)

<%@ page language="java" import="java.util.*,

    java.net.*,

    java.text.*,

    org.apache.solr.client.solrj.*,

    org.apache.solr.client.solrj.impl.*,

    org.apache.solr.client.solrj.response.*,

    org.apache.solr.common.*" pageEncoding="UTF-8"%>

<%!

    // 代码片段一:分页相关配置参数,及方法。临时性的存放于此。生产环境中会放在别的配置类中。

    // 每页显示多少条记录

    private final int PAGE_ROWS = 10; 

    // 默认分页

    private final int DEFAULT_PAGES = 6;

    // 最大分页

    private final int MAX_PAGES = 50;

    

    // 计算起始页,及实际分页值

    private int[] caluPages(int curPage, long totalPages) {

        int[] result = new int[]{curPage, DEFAULT_PAGES}; // 默认返回当前页

        if(totalPages < DEFAULT_PAGES) {

            // 如果总页数小于“默认分页”,则从1开始,结果就是所有页全部显示

            result = new int[]{1, DEFAULT_PAGES};

        }else if(curPage < DEFAULT_PAGES) {

            // 当前页还没有超出“默认分页”,则从1开始;但是需要修改pages值

            result = new int[]{1, DEFAULT_PAGES + 3};

        }else {

            // 此种是curPage >= DEFAULT_PAGES的情况,起始页从当前页值-每页页数的下一页算起

            result = new int[]{curPage - DEFAULT_PAGES + 1, DEFAULT_PAGES+3};

        }

            

        return result;

    }

    

    

    // 代码片段二:取得Solr服务器实例的代码,临时性的存放于此。生产环境中会放在别的配置类中。

    private static HttpSolrServer serverNews;



    static {

        serverNews = new HttpSolrServer("http://127.0.0.1:8080/solr/news");

        serverNews.setMaxRetries(1); // defaults to 0. > 1 not recommended.

        serverNews.setConnectionTimeout(60*1000); // 1分钟

        serverNews.setSoTimeout(60*1000); // socket read timeout

        serverNews.setDefaultMaxConnectionsPerHost(100);

        serverNews.setMaxTotalConnections(100);

        serverNews.setFollowRedirects(false); // defaults to false

        serverNews.setAllowCompression(true);

    }

%>

<%

    // 查询参数

    String q = request.getParameter("q");

    // 第多少页

    String pg = request.getParameter("pg");

    if(q == null) q = "新闻";

    if(pg == null) pg = "";



    int curPage = 1; // 当前页,此是给页面用的

    int startRow = 0; // 从多少条记录开始显示,此是给Solr查询用的;起始值不是从1开始,而是从0开始

    if(pg != "") {

        curPage = Integer.parseInt(pg);

        startRow = (curPage-1)*PAGE_ROWS; 

    }

    

    // 分页的链接页        

    String url = "index.jsp?q=" + java.net.URLEncoder.encode(q, "UTF-8");

        

    System.out.println("查询参数:" + q + "\t查询第" + pg + "");

%>

<HTML>

<HEAD>

<META http-equiv=Content-Type content="text/html;charset=utf-8">

<TITLE>精度信息搜索</TITLE>

<LINK rel="stylesheet" href="css/style1.css" type="text/css"/>

</HEAD>

<BODY link=#0000cc>

<DIV id=out>

    <DIV id=in>

        <DIV id=wrapper>

            <DIV id=container class=container_s>

                <DIV id="m">

                    <DIV id="fm">

                        <FORM name="f" action="index.jsp">

                            <SPAN class="s_ipt_wr">

                            <INPUT name="q" id="q" value="<%=q%>" maxlength="100" class="s_ipt" type="text">

                            </SPAN> <SPAN class="s_btn_wr">

                            <INPUT value="精度一下" id="su" class="s_btn" type="submit">

                            </SPAN>

                        </FORM>

                    </DIV>

                </DIV>

<%

    // 查询开始

    SolrQuery params = new SolrQuery("text:(" + q + ")");

    params.set("start", startRow);

    params.set("rows", PAGE_ROWS);

    params.set("fl", "*,score");

    params.setHighlight(true); // 开启高亮组件

    params.addHighlightField("webTitle");// 高亮字段

    params.addHighlightField("webContent");// 高亮字段



    try {

        QueryResponse solrResponse = serverNews.query(params);



        // 处理查询结果开始...

        SolrDocumentList sdList = solrResponse.getResults();

        Map<String, Map<String, List<String>>> map = solrResponse.getHighlighting();

        long numfound = sdList.getNumFound(); // 查询返回多少条记录

        long elapsedtime = solrResponse.getElapsedTime(); //耗时

        

        // 下面是输出内容的代码

        SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        out.println("<DIV id=content_left>");

        for (int i = 0; i < sdList.size(); i++) {

            SolrDocument sdocument = sdList.get(i);

            

            // 下面这些参数是存储在Lucene索引中的值,在sdList中

            String objectId = (String)sdocument.get("objectId");

            String webHtml = (String)sdocument.get("webHtml");

            String webUrl = (String)sdocument.get("webUrl");

            String webTime = "";

            try {

                webTime = sdf.format(sdocument.get("webTime"));

            }catch (Exception e){

            }

            String webCommit = (String)sdocument.get("webCommit");

            String webUrlShort = webUrl;

            

            // 下面这两个字段有可能都包含关键字,也有可能只有一个包含

            String title = (String)sdocument.get("webTitle");

            String content = (String)sdocument.get("webContent");

            if(content.length() > 100) {

                content = content.substring(0,100) + "...";

            }



            Map<String, List<String>> valueMap = map.get(objectId);

            for (Map.Entry<String, List<String>> entry : valueMap.entrySet()) {

                String subkeyname = entry.getKey().toString();

                String subkeyvalue = entry.getValue().get(0);

                

                if("webTitle".equals(subkeyname)) {

                    title = subkeyvalue;

                }else if("webContent".equals(subkeyname)) {

                    // 高亮是摘要信息。默认值是100

                    content = subkeyvalue;

                }

            }

            

            out.println("<TABLE id=1 class=result cellSpacing=0 cellPadding=0>");

            out.println("<TBODY>");

            out.println("<TR>");

            out.println("<TD class=f>");

            out.println("<H3 class=t><A href=\"" + webUrl + "\" target=_blank data-click=\"{'F':'778317EA','F1':'9D33F1E4','F2':'CCA6DE6B','F3':'54E5243F','T':'1358404362','y':'8BBC7F73'}\">");

            out.println(title);

            out.println("</A></H3>");

            out.println("<FONT size=-1>");

            out.println(content);

            out.println("</FONT><BR><FONT size=-1></FONT><FONT size=-1>");

            out.println("<SPAN class=g>" + webUrlShort + " " + webTime + "-" + webCommit + "</SPAN>");

            out.println("<A class=m href=\"" + webHtml + "\" target=_blank data-nolog>精度快照</A><SPAN id=like_2663726754990454856 class=liketip data-nolog></SPAN>");

            out.println("</FONT></TD></TR></TBODY></TABLE><BR>");

        }

        out.println("</DIV>");

        

        // 下面是输出分页的代码

        

        // 总页数,起始页,实际分页值

        long totalPages = (long)(Math.ceil((double)numfound/(double)PAGE_ROWS));

        int[] pageParams = caluPages(curPage, totalPages);

        int startPage = pageParams[0];

        int pages = pageParams[1];

        System.out.println("总页数:"+ totalPages + ",当前页:" + curPage + ",起始页:" + startPage + ",实际分页:" + pages + ",Solr开始记录:" + startRow);

        

        out.println("<P id=page>");

        // 如果当前页大于1,则显示上一页

        if(curPage > 1) {

            out.println("<A class=n href=\"" + url + "&pg=" + (curPage-1) + "\">&lt;上一页</A>");

        }

        if(totalPages >= 1) {

            for(int i=startPage; i<startPage+pages; i++) {

                if(i > totalPages) {

                    break;

                }

                if(curPage == i) {

                    out.println("<STRONG><SPAN class=\"fk fk_cur\"></SPAN><SPAN class=pc>" + i + "</SPAN></STRONG>");

                }else {

                    out.println("<A href=\"" + url + "&pg=" + i + "\"><SPAN class=\"fk fkd\"></SPAN><SPAN class=pc>" + i + "</SPAN></A>");

                }

            }

        }

        // 如果当前页小于总页数,则显示下一页(如果无结果,则当前页为1,总页数为0) 

        if(curPage < totalPages) {

            out.println("<A class=n href=\"" + url + "&pg=" + (curPage+1) + "\">下一页&gt;</A>");

        }

        out.println("<SPAN style=\"MARGIN-LEFT: 20px\" class=nums>精度为您找到相关结果约" + numfound + "个,耗时:" + elapsedtime + "毫秒</SPAN>");

        out.println("</P>");

        out.println("<BR/>");

        

    } catch (SolrServerException e) {

        e.printStackTrace();

    }

%>

            </DIV>

        </DIV>

    </DIV>

</DIV>

</BODY>

</HTML>

5.  样式文件参考(从百度页面里摘取出来的)

Solr4:Solr查询结果JSP分页显示(每次查询只返回指定记录数)
BODY {

    POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BACKGROUND: #fff; COLOR: #000; PADDING-TOP: 6px

}

BODY {

    FONT-FAMILY: arial

}

TH {

    FONT-FAMILY: arial

}

TD {

    FONT-FAMILY: arial

}

.p1 {

    FONT-FAMILY: arial

}

.p2 {

    FONT-FAMILY: arial

}

P {

    PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px

}

FORM {

    PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px

}

OL {

    PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px

}

UL {

    PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px

}

LI {

    PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px

}

DL {

    PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px

}

DT {

    PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px

}

DD {

    PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px

}

H3 {

    PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px

}

INPUT {

    BOX-SIZING: border-box; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; -moz-box-sizing: border-box; -webkit-box-sizing: border-box

}

TABLE {

    BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px

}

IMG {

    BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px

}

TD {

    LINE-HEIGHT: 18px; FONT-SIZE: 9pt

}

EM {

    FONT-STYLE: normal; COLOR: #cc0000

}

A EM {

    TEXT-DECORATION: underline

}

CITE {

    FONT-STYLE: normal; COLOR: #008000

}

.m {

    COLOR: #666

}

A.m {

    COLOR: #666

}

A.m:visited {

    COLOR: #606

}

.g {

    COLOR: #008000

}

A.g {

    COLOR: #008000

}

.c {

    COLOR: #77c

}

.f14 {

    FONT-SIZE: 14px

}

.f10 {

    FONT-SIZE: 10.5pt

}

.f16 {

    FONT-SIZE: 16px

}

#u {

    FONT-SIZE: 12px

}

#head {

    FONT-SIZE: 12px

}

#tool {

    FONT-SIZE: 12px

}

#search {

    FONT-SIZE: 12px

}

#foot {

    FONT-SIZE: 12px

}

.p1 {

    LINE-HEIGHT: 120%; MARGIN-LEFT: -12pt

}

.p2 {

    LINE-HEIGHT: 120%; WIDTH: 100%; MARGIN-LEFT: -12pt

}

#out {

    _margin-left: 880px; _zoom: 1

}

#in {

    _margin-left: -880px; _position: relative; _float: left

}

#wrapper {

    MIN-WIDTH: 880px; _zoom: 1

}

#container {

    PADDING-LEFT: 20px

}

.container_s {

    WIDTH: 967px

}

.container_l {

    WIDTH: 1187px

}

#content_left {

    WIDTH: 636px

}

#content_right {

    FLOAT: right

}

.container_s #content_right {

    WIDTH: 281px

}

.container_l #content_right {

    WIDTH: 451px

}

#u {

    Z-INDEX: 299; POSITION: absolute; WHITE-SPACE: nowrap; COLOR: #999; TOP: 4px; RIGHT: 10px; _top: 0

}

#u A {

    MARGIN: 0px 5px; COLOR: #00c

}

#u .reg {

    MARGIN: 0px

}

#u .last {

    MARGIN-RIGHT: 0px

}

#u .un {

    PADDING-RIGHT: 11px; BACKGROUND: url(http://www.baidu.com/cache/global/img/bg-1.1.0.png) no-repeat right -195px; FONT-WEIGHT: bold; MARGIN-RIGHT: 5px

}

#u UL {

    BORDER-BOTTOM: #9b9b9b 1px solid; BORDER-LEFT: #9b9b9b 1px solid; WIDTH: 100%; BACKGROUND: #fff; BORDER-TOP: #9b9b9b 1px solid; BORDER-RIGHT: #9b9b9b 1px solid

}

#u LI {

    HEIGHT: 25px

}

#u LI A {

    TEXT-ALIGN: left; FILTER: none; LINE-HEIGHT: 25px; TEXT-INDENT: 6px; MARGIN: 0px; WIDTH: 100%; DISPLAY: block; HEIGHT: 25px; TEXT-DECORATION: none

}

#u LI A:hover {

    BACKGROUND: #ebebeb

}

#u LI.nl {

    BORDER-TOP: #ebebeb 1px solid

}

#userMenu {

    POSITION: absolute; WIDTH: 64px; DISPLAY: none; BACKGROUND: #fff; TOP: 15px; RIGHT: 7px; PADDING-TOP: 4px; _right: 2px

}

#user {

    POSITION: relative; DISPLAY: inline-block

}

#head {

    PADDING-LEFT: 20px

}

.fm {

    Z-INDEX: 297; POSITION: relative; CLEAR: both

}

.nv A {

    FONT-SIZE: 14px

}

.nv B {

    FONT-SIZE: 14px

}

.btn {

    FONT-SIZE: 14px

}

#page {

    FONT-SIZE: 14px

}

#more {

    FONT-SIZE: 14px

}

.s_nav {

    HEIGHT: 45px

}

.s_nav .s_logo {

    FLOAT: left; MARGIN-RIGHT: 20px

}

.s_nav .s_logo IMG {

    BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px

}

.s_nav .s_tab {

    PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FLOAT: left; PADDING-TOP: 20px

}

.s_nav A {

    COLOR: #0000cc; FONT-SIZE: 14px

}

.s_nav B {

    FONT-SIZE: 14px

}

.s_ipt_wr {

    BORDER-BOTTOM: #b6b6b6 1px solid; BORDER-LEFT: #7b7b7b 1px solid; WIDTH: 533px; DISPLAY: inline-block; BACKGROUND: url(http://s1.bdstatic.com/r/www/img/i-1.0.0.png) no-repeat -304px 0px; HEIGHT: 30px; VERTICAL-ALIGN: top; BORDER-TOP: #7b7b7b 1px solid; MARGIN-RIGHT: 5px; BORDER-RIGHT: #b6b6b6 1px solid

}

.s_ipt {

    PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; MARGIN: 5px 0px 0px 7px; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; WIDTH: 520px; PADDING-RIGHT: 0px; FONT: 16px/22px arial; BACKGROUND: #fff; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 22px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; -webkit-appearance: none

}

.s_btn {

    PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; PADDING-LEFT: 0px; WIDTH: 95px; PADDING-RIGHT: 0px; BACKGROUND: url(http://s1.bdstatic.com/r/www/img/i-1.0.0.png) #ddd; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 32px; FONT-SIZE: 14px; BORDER-LEFT-WIDTH: 0px; CURSOR: pointer; PADDING-TOP: 0px

}

.s_btn_h {

    BACKGROUND-POSITION: -100px 0px

}

.s_btn_wr {

    Z-INDEX: 0; POSITION: relative; WIDTH: 97px; DISPLAY: inline-block; BACKGROUND: url(http://s1.bdstatic.com/r/www/img/i-1.0.0.png) no-repeat -202px 0px; HEIGHT: 34px; VERTICAL-ALIGN: top

}

.sethf {

    PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-SIZE: 14px; PADDING-TOP: 0px

}

.set_h {

    DISPLAY: none; BEHAVIOR: url(#default#homepage)

}

.set_f {

    DISPLAY: none

}

.shouji {

    MARGIN-LEFT: 22px

}

#tb_mr {

    Z-INDEX: 298; POSITION: relative; COLOR: #00c; CURSOR: pointer

}

#tb_mr B {

    FONT-WEIGHT: normal; TEXT-DECORATION: underline

}

#tb_mr SMALL {

    FONT-SIZE: 11px

}

#page {

    FONT: 14px simsun; WHITE-SPACE: nowrap

}

#page A {

    TEXT-ALIGN: center; LINE-HEIGHT: 22px; DISPLAY: inline-block; BACKGROUND: white; HEIGHT: 54px; VERTICAL-ALIGN: text-bottom; OVERFLOW: hidden; MARGIN-RIGHT: 5px; TEXT-DECORATION: none

}

#page STRONG {

    TEXT-ALIGN: center; LINE-HEIGHT: 22px; DISPLAY: inline-block; BACKGROUND: white; HEIGHT: 54px; VERTICAL-ALIGN: text-bottom; OVERFLOW: hidden; MARGIN-RIGHT: 5px; TEXT-DECORATION: none

}

#page A {

    CURSOR: pointer

}

#page A:hover {

    BACKGROUND: 0px 50%

}

#page .n:hover {

    BACKGROUND: #ebebeb

}

#page A:hover .pc {

    BACKGROUND: #ebebeb

}

#page .n {

    BORDER-BOTTOM: #e7ecf0 1px solid; BORDER-LEFT: #e7ecf0 1px solid; PADDING-BOTTOM: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px; HEIGHT: 22px; BORDER-TOP: #e7ecf0 1px solid; BORDER-RIGHT: #e7ecf0 1px solid; PADDING-TOP: 0px

}

#page SPAN {

    DISPLAY: block

}

#page .pc {

    BORDER-BOTTOM: #e7ecf0 1px solid; BORDER-LEFT: #e7ecf0 1px solid; WIDTH: 22px; HEIGHT: 22px; BORDER-TOP: #e7ecf0 1px solid; CURSOR: pointer; BORDER-RIGHT: #e7ecf0 1px solid

}

#page .fk {

    WIDTH: 24px; BACKGROUND: url(http://s1.bdstatic.com/r/www/cache/global/img/bg-1.1.0.png) no-repeat -35px -309px; HEIGHT: 30px; CURSOR: pointer

}

#page STRONG .fk {

    CURSOR: auto

}

#page STRONG .pc {

    CURSOR: auto

}

#page .fkd {

    BACKGROUND-POSITION: -35px -303px

}

#page .fk_cur {

    BACKGROUND-POSITION: 2px -312px

}

#page STRONG .pc {

    LINE-HEIGHT: 24px; BORDER-RIGHT-WIDTH: 0px; WIDTH: 24px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 24px; BORDER-LEFT-WIDTH: 0px

}

#page .nums {

    DISPLAY: inline-block; VERTICAL-ALIGN: text-bottom

}

#rs {

    PADDING-BOTTOM: 8px; MARGIN: 20px 0px 0px; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; BACKGROUND: #fff; PADDING-TOP: 8px

}

#rs TD {

    WIDTH: 5%

}

#rs TH {

    TEXT-ALIGN: left; LINE-HEIGHT: 19px; WHITE-SPACE: nowrap; FONT-SIZE: 14px; VERTICAL-ALIGN: top; FONT-WEIGHT: normal

}

#rs .tt {

    PADDING-BOTTOM: 0px; PADDING-LEFT: 20px; PADDING-RIGHT: 10px; FONT-WEIGHT: bold; PADDING-TOP: 0px

}

#rs_top {

    MARGIN-BOTTOM: 22px; FONT-SIZE: 14px

}

#rs_top A {

    MARGIN-RIGHT: 18px

}

#search {

    PADDING-BOTTOM: 16px; PADDING-LEFT: 20px; PADDING-RIGHT: 0px; PADDING-TOP: 35px

}

#search .s_help {

    POSITION: relative; TOP: 10px

}

#foot {

    TEXT-ALIGN: center; LINE-HEIGHT: 20px; BACKGROUND: #e6e6e6; HEIGHT: 20px; COLOR: #77c

}

#foot SPAN {

    COLOR: #666

}

.site_tip {

    PADDING-BOTTOM: 5px; LINE-HEIGHT: 18px; PADDING-LEFT: 72px; PADDING-RIGHT: 0px; MARGIN-BOTTOM: 20px; BACKGROUND: url(http://s1.bdstatic.com/r/www/img/bg-1.0.0.gif) no-repeat; FONT-SIZE: 13px; PADDING-TOP: 3px

}

.to_zhidao {

    PADDING-BOTTOM: 0px; LINE-HEIGHT: 24px; MARGIN: 20px 0px 0px; PADDING-LEFT: 32px; PADDING-RIGHT: 0px; BACKGROUND: url(http://s1.bdstatic.com/r/www/img/bg-1.0.0.gif) no-repeat 0px -68px; FONT-SIZE: 16px; PADDING-TOP: 0px

}

.to_tieba {

    PADDING-BOTTOM: 0px; LINE-HEIGHT: 24px; MARGIN: 20px 0px 0px; PADDING-LEFT: 32px; PADDING-RIGHT: 0px; BACKGROUND: url(http://s1.bdstatic.com/r/www/img/bg-1.0.0.gif) no-repeat 0px -68px; FONT-SIZE: 16px; PADDING-TOP: 0px

}

.to_tieba {

    BACKGROUND-POSITION: 0px -102px

}

.f {

    LINE-HEIGHT: 120%; WIDTH: 33.7em; WORD-WRAP: break-word; FONT-SIZE: 100%; WORD-BREAK: break-all

}

.h {

    WIDTH: 100%; MARGIN-LEFT: 8px

}

.r {

    WIDTH: 238px; WORD-BREAK: break-all; CURSOR: hand

}

.t {

    FONT-SIZE: medium; FONT-WEIGHT: normal

}

.pl {

    PADDING-LEFT: 3px; PADDING-RIGHT: 2px; HEIGHT: 8px; FONT-SIZE: 14px

}

.mo {

    LINE-HEIGHT: 10px; COLOR: #666; FONT-SIZE: 100%

}

A.mo:link {

    LINE-HEIGHT: 10px; COLOR: #666; FONT-SIZE: 100%

}

A.mo:visited {

    LINE-HEIGHT: 10px; COLOR: #666; FONT-SIZE: 100%

}

.htb {

    MARGIN-BOTTOM: 5px

}

.jc A {

    COLOR: #cc0000

}

A FONT[size='3'] FONT {

    TEXT-DECORATION: underline

}

FONT[size='3'] A FONT {

    TEXT-DECORATION: underline

}

DIV.blog {

    COLOR: #707070; PADDING-TOP: 3px

}

DIV.bbs {

    COLOR: #707070; PADDING-TOP: 3px

}

.result {

    WIDTH: 33.7em; TABLE-LAYOUT: fixed

}

.result-op .f {

    WORD-WRAP: normal

}

.nums {

    COLOR: #999; FONT-SIZE: 12px

}

.tools {

    POSITION: absolute; WIDTH: 230px; WHITE-SPACE: nowrap; TOP: 10px

}

#mHolder {

    Z-INDEX: 296; POSITION: relative; WIDTH: 62px; DISPLAY: none; MARGIN-LEFT: 9px; TOP: -18px; MARGIN-RIGHT: -12px

}

#mCon {

    POSITION: absolute; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; PADDING-LEFT: 0px; PADDING-RIGHT: 18px; BACKGROUND: url(http://s1.bdstatic.com/r/www/img/bg-1.0.0.gif) no-repeat right -135px; HEIGHT: 18px; TOP: 6px; CURSOR: pointer; RIGHT: 7px; PADDING-TOP: 0px

}

#mCon SPAN {

    DISPLAY: block; COLOR: #00c; CURSOR: default

}

#mCon .hw {

    CURSOR: pointer; TEXT-DECORATION: underline

}

#mMenu {

    BORDER-BOTTOM: #9b9b9b 1px solid; POSITION: absolute; BORDER-LEFT: #9b9b9b 1px solid; WIDTH: 56px; DISPLAY: none; BACKGROUND: #fff; BORDER-TOP: #9b9b9b 1px solid; TOP: 23px; RIGHT: 7px; BORDER-RIGHT: #9b9b9b 1px solid

}

#mMenu A {

    FILTER: none; LINE-HEIGHT: 22px; TEXT-INDENT: 6px; WIDTH: 100%; DISPLAY: block; HEIGHT: 100%; COLOR: #00c; TEXT-DECORATION: none

}

#mMenu A:hover {

    BACKGROUND: #ebebeb

}

#mMenu .ln {

    LINE-HEIGHT: 1px; MARGIN-TOP: -1px; BACKGROUND: #ebebeb; HEIGHT: 1px; FONT-SIZE: 1px; OVERFLOW: hidden

}

.op_LAMP {

    WIDTH: 16px; ZOOM: 1; DISPLAY: inline-block; BACKGROUND: url(http://s1.bdstatic.com/r/www/cache/global/img/aladdinIcon-1.0.gif) no-repeat 0px 2px; HEIGHT: 14px; COLOR: #77c; FONT-SIZE: 13px; TEXT-DECORATION: none

}

.EC_mr15 {

    MARGIN-LEFT: 0px

}

.pd15 {

    PADDING-LEFT: 0px

}

.map_1 {

    LINE-HEIGHT: 145%; WIDTH: 30em; FONT-SIZE: 80%

}

.map_2 {

    LINE-HEIGHT: 145%; WIDTH: 25em; FONT-SIZE: 80%

}

.favurl {

    PADDING-LEFT: 20px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: 0px 1px

}

.dan_tip {

    MARGIN-TOP: 4px; FONT-SIZE: 12px

}

.unsafe_txttip_o {

    LINE-HEIGHT: 19px; PADDING-LEFT: 18px; WIDTH: 31px; DISPLAY: inline-block; BACKGROUND: url(http://www.baidu.com/cache/global/img/bg-1.0.12.png) no-repeat left -762px; HEIGHT: 18px; COLOR: #fff; FONT-SIZE: 12px; CURSOR: pointer; MARGIN-RIGHT: 4px

}

.dan_tip A {

    COLOR: #b95b07

}

#more {

    FILTER: progid:DXImageTransform.Microsoft.Shadow(Strength=2,Direction=135,Color="#cccccc"); box-shadow: 1px 1px 2px #ccc; -moz-box-shadow: 1px 1px 2px #ccc; -webkit-box-shadow: 1px 1px 2px #ccc

}

#u UL {

    FILTER: progid:DXImageTransform.Microsoft.Shadow(Strength=2,Direction=135,Color="#cccccc"); box-shadow: 1px 1px 2px #ccc; -moz-box-shadow: 1px 1px 2px #ccc; -webkit-box-shadow: 1px 1px 2px #ccc

}

#mMenu {

    FILTER: progid:DXImageTransform.Microsoft.Shadow(Strength=2,Direction=135,Color="#cccccc"); box-shadow: 1px 1px 2px #ccc; -moz-box-shadow: 1px 1px 2px #ccc; -webkit-box-shadow: 1px 1px 2px #ccc

}

.msg_holder {

    FILTER: progid:DXImageTransform.Microsoft.Shadow(Strength=2,Direction=135,Color="#cccccc"); box-shadow: 1px 1px 2px #ccc; -moz-box-shadow: 1px 1px 2px #ccc; -webkit-box-shadow: 1px 1px 2px #ccc

}

.hit_top {

    LINE-HEIGHT: 18px; MARGIN: 0px 15px 10px 0px; PADDING-LEFT: 20px; WIDTH: 516px; BACKGROUND: url(http://www.baidu.com/cache/global/img/bg-1.1.0.png) no-repeat left -619px

}

.hit_top_01 {

    LINE-HEIGHT: 20px; PADDING-LEFT: 0px; WIDTH: 33.7em; BACKGROUND: 0px 50%

}

.hit_top_01 I {

    WIDTH: 16px; DISPLAY: inline-block; BACKGROUND: url(http://www.baidu.com/cache/global/img/bg-1.1.0.png) no-repeat left -446px; HEIGHT: 16px; VERTICAL-ALIGN: 1px; MARGIN-RIGHT: 3px; _vertical-align: 2px

}

.f A FONT[size='3'] FONT {

    TEXT-DECORATION: underline

}

.f FONT[size='-1'] A FONT {

    TEXT-DECORATION: underline

}

H3 A FONT {

    TEXT-DECORATION: underline

}

.c-title {

    FONT-SIZE: 16px; FONT-WEIGHT: normal

}

.c-title-size {

    FONT-SIZE: 16px

}

.c-abstract {

    FONT-SIZE: 13px

}

.c-abstract-size {

    FONT-SIZE: 13px

}

.c-showurl {

    COLOR: #008000; FONT-SIZE: 13px

}

.c-showurl-color {

    COLOR: #008000

}

.c-cache-color {

    COLOR: #666

}

.c-lightblue {

    COLOR: #77c

}

.c-highlight-color {

    COLOR: #c00

}

.c-clearfix:after {

    DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: both; CONTENT: "."

}

.c-clearfix {

    ZOOM: 1

}

.c-wrap {

    WORD-WRAP: break-word; WORD-BREAK: break-all

}

.icp_info {

    MARGIN-TOP: 3px; COLOR: #666

}

.icp_info SPAN {

    WIDTH: 11px; DISPLAY: inline-block; BACKGROUND: url(http://www.baidu.com/cache/global/img/bg-1.1.0.png) -28px -223px; HEIGHT: 13px; VERTICAL-ALIGN: 2px; MARGIN-RIGHT: 5px

}

.icon-gw {

    LINE-HEIGHT: 16px; MARGIN: 4px 0px 0px; PADDING-LEFT: 18px; WIDTH: 31px; DISPLAY: inline-block; BACKGROUND: url(http://www.baidu.com/cache/global/img/bg-1.0.12.png) no-repeat left -793px; HEIGHT: 17px; COLOR: #fff; FONT-SIZE: 12px; VERTICAL-ALIGN: middle; OVERFLOW: hidden; PADDING-TOP: 1px

}

#con-at {

    MARGIN-BOTTOM: 15px

}

#con-ar {

    BORDER-LEFT: #e1e1e1 1px solid; PADDING-LEFT: 10px

}

#con-at .result-op {

    LINE-HEIGHT: 1.52em; MARGIN-BOTTOM: 15px; FONT-SIZE: 13px

}

#con-ar .result-op {

    LINE-HEIGHT: 1.52em; MARGIN-BOTTOM: 15px; FONT-SIZE: 13px

}
View Code

6. 完整代码参考下载

包括schema.xml配置文件供参考用,下载地址:http://files.cnblogs.com/nayitian/solr_jsp.rar

你可能感兴趣的:(Solr)