`
chenlb
  • 浏览: 690571 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

solr json ajax

阅读更多
    用ajax去请求solr服务。返回json,然后解释。让solr返回json的参数是wt=json。然后javascript用evel()解释成对象。
我的solr会返回:auother,title,introduce这几个域。先创建一个jsp或html,如:json.jsp

1.json.jsp关键的html内容
  <form action="select/" name="f1" method="get" onsubmit="xmlhttpPost('/solr/select'); return false;" >
      Chenlb: 
      
<input type="text" name="q" size="80" value="文档">
      
<input name="start" type="hidden" value="0">
    
<input name="rows" type="hidden" value="10">
    
<input name="indent" type="hidden" value="on">
    
<input name="wt" type="hidden" value="">
      
<input type="button" value=" 搜 索 " onclick="xmlhttpPost('/solr/select');">
      
<input type="button" value=" get json " onclick="document.forms['f1'].wt.value='json';document.forms['f1'].submit();">
      
<input type="button" value=" get xml " onclick="document.forms['f1'].wt.value='';document.forms['f1'].submit();">
  
</form>
  
<div style="background-color: #ccccff; height: 15px;"></div>
  
<p>
    
<div id="header"></div>
    
<div id="response"></div>
    
<table id="docs" class="tab" cellspacing="1">
        
<tr height="25" style="background-color: #cccccc; color: #0000ff;">
            
<td>作者</td>
            
<td>简介</td>
            
<td>标题</td>
            
<td>score</td>
        
</tr>
    
</table>

2.javascript部分
function xmlhttpPost(strURL) {
    
var xmlHttpReq = false;
    
var self = this;
    
if (window.XMLHttpRequest) { // Mozilla/Safari
        self.xmlHttpReq = new XMLHttpRequest(); 
    }
    
else if (window.ActiveXObject) { // IE
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    
var params = getstandardargs().concat(getquerystring());
    
var strData = params.join('&');
    
    
var header = document.getElementById("response");
    header.innerHTML 
= strURL+'?'+strData;

    self.xmlHttpReq.open('get', strURL
+'?'+strData+'&time='+new Date().getTime(), true);
    self.xmlHttpReq.setRequestHeader('Content
-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange 
= function() {
        
if (self.xmlHttpReq.readyState == 4) {
            updatepage(self.xmlHttpReq.responseText);
        }
    }
    self.xmlHttpReq.send(
null);
}

function getstandardargs() {
    
var params = [
        'wt
=json'
        , 'indent
=on'
        , 'hl
=true'
        , 'hl.fl
='
        , 'fl
=*,score'
        , 'start
=0'
        , 'rows
=10'
        ];

    
return params;
}
function getquerystring() {
  
var form = document.forms['f1'];
  
var query = form.q.value;
  qstr 
= 'q=+ encodeURI(query);    //escape
  return qstr;
}

// this function does all the work of parsing the solr response and updating the page.
function updatepage(str){
  
//document.getElementById("response").innerHTML = str;
  var rsp = eval("("+str+")"); // use eval to parse Solr's JSON response
  parse(rsp);
}

function parse(j) {
    
var header = document.getElementById("header");
    
var rh = j.responseHeader;
    
var header_str = " 搜索: \""+rh.params.q+"\", 花了: "+rh.QTime+"ms, 共显示: "+j.response.numFound+"条记录, 总共有: "+rh.params.rows;
    header.innerHTML 
= header_str;
    
var docs = j.response.docs;
    
var tab = document.getElementById("docs");
    
for(; tab.rows.length >1; ) {
        tab.deleteRow(
-1);
    }
    
var tr;
    
var td;
    
for(var i=0; i<docs.length; i++) {
        tr 
= tab.insertRow(-1);
        td 
= tr.insertCell(-1);
        td.innerHTML 
= docs[i].author;
        
        td 
= tr.insertCell(-1);
        td.innerHTML 
= docs[i].introduce;
        
        td 
= tr.insertCell(-1);
        td.innerHTML 
= docs[i].title;
        
        td 
= tr.insertCell(-1);
        td.innerHTML 
= docs[i].score;
    }
   }

3.现在可以搜索了。
http://localhost:8080/solr/json.jsp

solr怎么部署到Tomcat里请看:http://www.blogjava.net/chenlb/archive/2008/03/25/188459.html

分享到:
评论

相关推荐

    一个适合新手学习的电商项目

    使用jsonp返回商品目录(ajax方式动态加载) ### 代码: /** * 购物车Service */ @Service public class CartServiceImpl implements CartService { @Value("${REST_BASE_URL}") private String REST_BASE...

    Java学习路线图.pdf

    * Solr/Lucene/HBase/Hive/Kylin 基础:掌握 Solr、Lucene、HBase、Hive、Kylin 等框架的使用。 * Spring/Spring Boot/Spring Security/Spring Data/Spring Data JPA/Spring Data MongoDB/Spring Data Redis 基础:...

    JAVA上百实例源码以及开源项目

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个...

    【尚硅谷】徐靖博 最新电商项目实战(完结)

    }2 b9 E( w8 I 59.04 商品分类检索列表 60.05 商品属性检索介绍 61.06 ajax字符串数组传参 62.07 ajax字符串json传参& i' g9 \7 ^! e7 _ 63.08 表单序列化传参 64.09 动态sql的设计方法" o# D. ?# R% _1 X 65.10 ...

    docsearcher:基于单页面的PPT文档分享+管理系统,用户上传完整PPT文档,进行解析,提取页面文字(建立索引),用户搜索关键字后选择具体的页面,后台合并下载生成pdf文档

    docsearcher【项目名称】:DocSearcher开发...项目执行完后,技术或平台经验含:JavaScript,CSS,Html5, github,Ajax,JSON/XML,Android/iOS,Spring MVC,Hibernate,Restlet,NoSQL,MySQL,Lucene/Solr,POI等。

    java开源包1

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包11

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包2

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包3

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包6

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包5

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包10

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包4

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包8

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包7

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包9

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包101

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    Java资源包01

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    JAVA上百实例源码以及开源项目源代码

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个...

Global site tag (gtag.js) - Google Analytics