148补尚学堂科技张志宇lucene构建一个简单的WEB搜索程序.docx

上传人:b****6 文档编号:3600328 上传时间:2022-11-24 格式:DOCX 页数:39 大小:29.99KB
下载 相关 举报
148补尚学堂科技张志宇lucene构建一个简单的WEB搜索程序.docx_第1页
第1页 / 共39页
148补尚学堂科技张志宇lucene构建一个简单的WEB搜索程序.docx_第2页
第2页 / 共39页
148补尚学堂科技张志宇lucene构建一个简单的WEB搜索程序.docx_第3页
第3页 / 共39页
148补尚学堂科技张志宇lucene构建一个简单的WEB搜索程序.docx_第4页
第4页 / 共39页
148补尚学堂科技张志宇lucene构建一个简单的WEB搜索程序.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

148补尚学堂科技张志宇lucene构建一个简单的WEB搜索程序.docx

《148补尚学堂科技张志宇lucene构建一个简单的WEB搜索程序.docx》由会员分享,可在线阅读,更多相关《148补尚学堂科技张志宇lucene构建一个简单的WEB搜索程序.docx(39页珍藏版)》请在冰豆网上搜索。

148补尚学堂科技张志宇lucene构建一个简单的WEB搜索程序.docx

148补尚学堂科技张志宇lucene构建一个简单的WEB搜索程序

148_补_Lucene_构建一个简单的WEB搜索程序

1.搜索结果加上链接

results.jsp

String_title=doc.get("title");

String_path=doc.get("path");

_path=_path.replaceAll("E:

\\\\app\\\\develop\\\\java\\\\api\\\\html_zh_CN\\\\html\\\\zh_CN\\\\api\\\\","");

_path=_path.replace('\\','/');

_path="http:

//127.0.0.1/api/"+_path;

……

">

<%=_title%>

2.解决摘要中有’<’等字符的问题

DataFilter.java

packagecom.bjsxt.lucene.util;

publicclassDataFilter{

publicstaticfinalStringescapeHTMLTags(Stringsourcestr){

if(sourcestr==null){

return"";

}

sourcestr=sourcestr.replaceAll("\\x26","&");//&

sourcestr=sourcestr.replaceAll("\\x3c","<");//<

sourcestr=sourcestr.replaceAll("\\x3e",">");//>

sourcestr=sourcestr.replaceAll("\\x09","    ");//tab键

sourcestr=sourcestr.replaceAll("\\x20"," ");//空格

sourcestr=sourcestr.replaceAll("\\x22",""");//"

sourcestr=sourcestr.replaceAll("\r\n","
");//回车换行

sourcestr=sourcestr.replaceAll("\r","
");//回车

sourcestr=sourcestr.replaceAll("\n","
");//换行

returnsourcestr;

}

}

results.jsp

String_summary=doc.get("summary");

……

<%=DataFilter.escapeHTMLTags(_summary)%>

3.登陆/注销

Index.jsp

<%@pagelanguage="java"import="java.util.*"pageEncoding="GB18030"%>

搜索系统

<body></p><p></body></p><p>

4.解决缓存问题

include.jsp

<%

response.addHeader("Cache-Control","no-cache");

response.addHeader("Expires","Thu,01Jan197000:

00:

01GMT");

%>

5.改变默认布尔逻辑

SearchBean.java

parser.setDefaultOperator(QueryParser.AND_OPERATOR);

6.按照文档得分进行排序

searchForm.jsp

关键词:

每页显示

排序:

得分

大小


results.jsp

<%@pagelanguage="java"import="java.util.*"pageEncoding="GB18030"%>

<%@includefile="include.jsp"%>

<%

intstart=0;

try{

start=Integer.parseInt(request.getParameter("start"));

}catch(Exceptione){}

intmaxresults=10;

try{

maxresults=Integer.parseInt(request.getParameter("maxresults"));

}catch(Exceptione){}

%>

关键词:

">

>

">

>得分

>大小

<%

//Stringindex="D:

\\share\\TOOLS\\apache-tomcat-5.5.17\\apache-tomcat-5.5.17\\webapps\\index";

Stringindex="C:

\\tomcat\\index_cn";

StringqueryStr=request.getParameter("query");

StringfieldSorted=request.getParameter("fieldSorted");

Stringreversed=request.getParameter("reversed");

IndexSearchersearcher=newIndexSearcher(index);

//TermQueryquery=newTermQuery(newTerm("title",queryStr));

QueryParserparser=newQueryParser("title",newMMAnalyzer());

parser.setDefaultOperator(QueryParser.AND_OPERATOR);

Queryquery=parser.parse(queryStr);

Sortsort=null;

if(fieldSorted.equals("RELEVANCE")){

sort=Sort.RELEVANCE;

}

Hitshits=searcher.search(query,sort);

%>

总共找到<%=hits.length()%>条记录

序号

路径

得分

<%

if(hits.length()>0){

System.out.println(hits.length());

for(inti=start;i

if(i>=hits.length())break;

Documentdoc=hits.doc(i);

String_summary=doc.get("summary");

String_title=doc.get("title");

String_path=doc.get("path");

_path=_path.replaceAll("E:

\\\\app\\\\develop\\\\java\\\\api\\\\html_zh_CN\\\\html\\\\zh_CN\\\\api\\\\","");

_path=_path.replace('\\','/');

_path="http:

//127.0.0.1/api/"+_path;

%>

<%=i+1%>

">

<%=_title%>

<%=hits.score(i)%>

 

<%}

}

%>

firstPage();">首页

<%if(start-maxresults>=0){%>

prePage();">前一页

<%}else{%>

前一页

<%}%>

<%if(start+maxresults

nextPage();">后一页

<%}else{%>

后一页

<%}%>

lastPage();">尾页

functionfirstPage(){

searchForm.start.value="0";

searchForm.submit();

}

functionprePage(){

searchForm.start.value="<%=start-maxresults%>";

searchForm.submit();

}

functionnextPage(){

searchForm.start.value="<%=start+maxresults%>";

searchForm.submit();

}

functionlastPage(){

searchForm.start.value="<%=hits.length()/maxresults*maxresults%>";

searchForm.submit();

}

 

7.加入排序功能(size)

确认建立索引的时候,size字段已经加入!

searchForm.jsp

关键词:

每页显示

排序:

得分

大小

降序

升序


results.jsp

<%@pagelanguage="java"import="java.util.*"pageEncoding="GB18030"%>

<%@includefile="include.jsp"%>

<%

intstart=0;

try{

start=Integer.parseInt(request.getParameter("start"));

}catch(Exceptione){}

intmaxresults=10;

try{

maxresults=Integer.parseInt(request.getParameter("maxresults"));

}catch(Exceptione){}

%>

关键词:

">

>

">

>得分

>大小

>降序

>升序

doSubmit()"value="提交">

<%

//Stringindex="D:

\\share\\TOOLS\\apache-tomcat-5.5.17\\apache-tomcat-5.5.17\\webapps\\index";

Stringindex="C:

\\tomcat\\index_cn";

StringqueryStr=request.getParameter("query");

StringfieldSorted=request.getParameter("fieldSorted");

Stringreversed=request.getParameter("reversed");

IndexSearchersearcher=newIndexSearcher(index);

//TermQueryquery=newTermQuery(newTerm("title",queryStr));

QueryParserparser=newQueryParser("title",newMMAnalyzer());

parser.setDefaultOperator(QueryParser.AND_OPERATOR);

Queryquery=parser.parse(queryStr);

Sortsort=null;

if(fieldSorted.equals("size")){

if(reversed.equals("true")){

sort=newSort("size",true);

}else{

sort=newSort("size",false);

}

}

elseif(fieldSorted.equals("RELEVANCE")){

sort=Sort.RELEVANCE;

}

Hitshits=searcher.search(query,sort);

%>

总共找到<%=hits.length()%>条记录

序号

路径

得分

大小

<%

if(hits.length()>0){

System.out.println(hits.length());

for(inti=start;i

if(i>=hits.length())break;

Documentdoc=hits.doc(i);

String_summary=doc.get("summary");

String_title=doc.get("title");

String_path=doc.get("path");

_path=_path.replaceAll("E:

\\\\app\\\\develop\\\\java\\\\api\\\\html_zh_CN\\\\html\\\\zh_CN\\\\api\\\\","");

_path=_path.replace('\\','/');

_path="http:

//127.0.0.1/a

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1