用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
分享到:
相关推荐
"solr json ajax - chenlb 的学习笔迹 - JavaEye技术网站.mht"可能涉及到Solr的JSON API和Ajax技术的结合,这在现代Web应用中很常见,能够实现异步交互,提升用户体验。 "Lucene-Solr开发经验.mht"文件可能分享了...
4. **SpringMVC与Ajax交互**: - 使用@ResponseBody返回JSON数据。 - 使用@RequestBody接收JSON数据。 - 配置静态资源和拦截器。 5. **SpringMVC高级特性**: - 异步处理:使用@Async执行异步任务。 - 文件...
Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新...在实际项目中,开发者可能还需要结合其他技术和工具,如jQuery简化Ajax操作,Solr或Elasticsearch提供更高级的搜索服务等。
搜索完成后,服务器将结果显示为JSON格式,再由前端的Ajax回调函数接收并更新页面。 为了优化用户体验,可以使用AJAX的局部刷新特性来实现搜索结果的实时滚动加载,即在用户滚动到底部时自动加载更多结果。此外,还...
在Solrjd项目中,前端界面可能会使用AJAX技术与Solr交互,实现实时的搜索建议和结果展示。 为了优化搜索体验,Solr提供多种查询分析器和过滤器,如中文分词器,用于将中文文本拆分成可搜索的关键词。此外,还可以...
它支持多种数据源的接入,例如XML、CSV或JSON,可以处理多种语言,并且具备丰富的字段类型定义和分析器,确保了不同类型的搜索需求得到满足。此外,Solr还提供了集群和分布式搜索功能,能够处理大规模的数据并实现高...
服务器端使用Struts2 Action和Spring Service处理请求,可能借助于全文搜索引擎(如Solr或Elasticsearch)或数据库查询来获取匹配的搜索关键词。返回的结果以JSON形式传输回客户端,jQuery将其解析并动态添加到搜索...
1. **创建Ajax视图**:在Django应用中创建处理Ajax请求的视图函数,这些视图通常只返回JSON数据,不渲染完整的HTML页面。 2. **定义URL路径**:为Ajax视图设置URL路径,确保前端能够正确发送请求。 3. **编写...
在前端技术方面,他熟练掌握HTML、CSS、JavaScript、JQuery、Json、Ajax和EasyUI,同时对MySQL数据库操作有深厚的理解,包括SQL语句的编写。 【姓名】对权限控制有深入理解,能用Shiro完成访问控制和动态授权。他还...
使用jsonp返回商品目录(ajax方式动态加载) ### 代码: /** * 购物车Service */ @Service public class CartServiceImpl implements CartService { @Value("${REST_BASE_URL}") private String REST_BASE...
* 熟悉掌握 JavaScript、Ajax、jQuery、JSON 等前台技术 * 熟悉使用 EasyUI、zTree、ECharts 等插件 * 熟悉使用 CKeditor 富文本编辑器 后台技术 * 熟悉掌握 Servlet、Cookie、Session、JDBC、JavaBean、EL 表达式...
11. **Spring MVC 和 Jackson**: Spring MVC是一个用于构建Web应用程序的模型-视图-控制器(MVC)框架,而Jackson则是一个Java库,用于处理JSON数据格式。提及Spring Mapping和Jackson Value表明商城系统在数据处理...
接着,他在苏州鼎铭网络科技有限公司负责了“实惠商城”的开发,该项目采用了SpringMVC、MyBatis、SpringMVC+MyBatis+MySql+C3P0+Json+JQuery+Ajax的技术栈,通过MyEclipse、SVN和Tomcat进行开发和部署。在系统架构...
在这个项目中,他利用SSH框架进行开发,结合AJAX和JSON实现数据交互,使用Shiro进行身份验证,以及Hibernate进行持久化操作,还运用了Activiti进行工作流设计。 另一个项目是“世界大药房药店超市进销存管理系统”...
在前端,项目大量运用Ajax(jQuery和JSON)技术,实现了页面的异步更新,提升了用户体验。 责任描述中,主要职责包括: 1. 预约教练模块:设计并实现了一个让学员可以按时间或教练预约的功能。学员登录后,能够查看...
10. SSH框架:熟悉SSH框架进行开发,JSP+AJAX+JSON完成数据交互展示。 11. 工作流技术:熟悉Activiti工作流技术,实现流程的流转和终结。 12. Excel文件操作:熟悉POI技术进行Excel文件的上传解析和下载写入操作。...
- **前端技术**:熟悉HTML、JSP、CSS、JavaScript、Ajax、EL和JSTL,同时使用过jQuery、EasyUI和Bootstrap框架。 - **MVC框架**:熟练掌握SpringMVC,了解Struts2,对Spring的IOC和AOP有深入理解和实践。 - **...
14. **前端技术**:项目可能使用LayUI+Thymeleaf+JQuery+Ajax+JSON进行界面设计和交互,ECharts用于数据可视化。 15. **其他工具和技术**:如Maven多模块构建,SVN版本控制,MySQL数据库,C3P0连接池,Hibernate的...