急问!!!!!!来者有分!!!!!!!!!!
请教在做搜索引擎时是否也分数据采集,数据整合,数据处理这三部分
请说说做搜索引擎时的整个流程,现在让我负责前端jsp可看不到具体实现
请问那我怎样编写?附上代码请请帮我分析一下代码 帮我加一下注释
wtbjcn@vip.sina.com还有wdb和wfs的关系是什末
<%@ page contentType="text/vnd.wap.wml"%>
<%@page import="gogosearch.*"%>
<%
session = WapLocalBean.getGogoSession(request,session,gogoSessionPool);
WapHistoryPool wapHistoryPool = (WapHistoryPool)WapLocalBean.getSessionObject(session,"wapHistoryPool");
WapWindow wapWindow = (WapWindow)WapLocalBean.getSessionObject(session,"wapWindow");
WapParaUrl wapParaUrl = (WapParaUrl)WapLocalBean.getSessionObject(session,"wapParaUrl");
WapUserBean wapUserBean = (WapUserBean)WapLocalBean.getSessionObject(session,"wapUserBean");
ResultArray resultArray = (ResultArray)WapLocalBean.getSessionObject(session,"resultArray");
int pageID = WapParameter.getInt(request,"pageID");
if(pageID==2)
{
wapParaUrl.setIndex(1);
}
String thisUrl = request.getRequestURL().toString();
int thisWindow = wapWindow.searchResult;
wapParaUrl.addUrl(thisWindow,thisUrl);
%>
<%
SearchCache searchCache = null;
searchCache = (SearchCache)application.getAttribute("searchCache");
if (searchCache == null)
{
synchronized (application)
{
searchCache = (SearchCache)application.getAttribute("searchCache");
if (searchCache == null)
{
searchCache = new SearchCache();
application.setAttribute("searchCache", searchCache);
}
}
}
BeforeSearchCache beforeSearchCache = null;
beforeSearchCache = (BeforeSearchCache)application.getAttribute("beforeSearchCache");
if (beforeSearchCache == null)
{
synchronized (application)
{
beforeSearchCache = (BeforeSearchCache)application.getAttribute("beforeSearchCache");
if (beforeSearchCache == null)
{
beforeSearchCache = new BeforeSearchCache();
application.setAttribute("beforeSearchCache", beforeSearchCache);
}
}
}
%>
<%=wapWmlBean.WMLStart()%>
<%
int pageCount = 0;
int task = WapParameter.getInt(request,"task");
wapParaUrl.addFirstParameter("task",task);
int thisPage = WapParameter.getInt(request,"thisPage");
wapParaUrl.addAfterParameter("thisPage",thisPage);
String keyword = WapParameter.getString(request,"keyword");
keyword = keyword.trim();
String newKeyword = "";
try
{
boolean isISO = true;
try
{
int length = keyword.length();
for(int i=0;i<length;i++)
{
if((int)keyword.charAt(i)>255)
{isISO = false;break;}
}
}
catch(Exception e)
{}
if(isISO)
{
if(wapUserBean.getUserConfig().isMobile())
{
newKeyword = new String(keyword.getBytes("iso-8859-1"),"UTF-8");
}
else
{
newKeyword = new String(keyword.getBytes("iso-8859-1"),"GBK");
}
}
else
{
newKeyword = keyword;
}
newKeyword = wapWmlBean.c2u(newKeyword);
}
catch(Exception e)
{}
wapParaUrl.addAfterParameter("keyword",newKeyword);
String url = WapParameter.getString(request,"url");
//System.out.println("url="+url);
wapParaUrl.addAfterParameter("url",url);
String sortType = WapParameter.getString(request,"sortType");
wapParaUrl.addAfterParameter("sortType",sortType);
if(sortType.indexOf("00")>=0)
{
sortType = "";
}
sortType = sortType.replaceAll(";","");
String language = "cn";
int key_mode = WapParameter.getInt(request,"key_mode");//1=all,0=only
wapParaUrl.addAfterParameter("key_mode",key_mode);
int key_site = WapParameter.getInt(request,"key_site");//0=all,1=title,2=text
wapParaUrl.addAfterParameter("key_site",key_site);
int renew_date = WapParameter.getInt(request,"renew_date");//0=all,1=1,3=3,12=12
wapParaUrl.addAfterParameter("renew_date",renew_date);
if(key_mode<0)
{
key_mode = 1;
}
if(key_site<0)
{
key_site = 0;
}
if(renew_date<0)
{
renew_date = 0;
}
String email = WapParameter.getString(request,"email");
wapParaUrl.addAfterParameter("email",email);
String selectHistoryOther = WapParameter.getString(request,"selectHistoryOther");//0=no,1=yes
wapParaUrl.addAfterParameter("selectHistoryOther",selectHistoryOther);
String selectEmailOther = WapParameter.getString(request,"selectEmailOther");//0=no,1=yes
wapParaUrl.addAfterParameter("selectEmailOther",selectEmailOther);
String withHistoryStr = selectHistoryOther;
boolean withHistory = false;
if(withHistoryStr.equals("1"))
withHistory = true;
if(!selectEmailOther.equals("1"))
email = "";
if(task<0)
{
task = CommandWord.TASK_SEARCH;
}
String resultStr[] = null;
if((task==CommandWord.TASK_SEARCH||task==CommandWord.TASK_SEARCH_AREA)&&keyword.length()==0)
{
%>
<%=wapWmlBean.WMLCardStart("info",wapWmlBean.c2u("消息"))%>
<p>
<%
out.print(wapWmlBean.c2u("请输入关键词!"));
out.print("<br/>");
}
else if(task==CommandWord.TASK_SEARCH_AREA&&url.length()==0)
{
%>
<%=wapWmlBean.WMLCardStart("info",wapWmlBean.c2u("消息"))%>
<p>
<%
out.print(wapWmlBean.c2u("请输入网站的网址!"));
out.print("<br/>");
}
else
{
if(task==CommandWord.TASK_SEARCH_AREA)
{
task = CommandWord.TASK_SEARCH;
}
wapUserBean.init(request,serverConfig,loadURL,searchCache,beforeSearchCache);
%>
<%
wapSearchResult.loadResult(wapUserBean,thisPage,keyword,key_mode,sortType,key_site,renew_date,url,language,withHistory,email,task);
wapSearchResult.start();
//out.print("<!--");
long timeStart = System.currentTimeMillis();
long timeEnd = System.currentTimeMillis();
long time = 0;
while(wapSearchResult.isAlive())
{
timeEnd = System.currentTimeMillis();
time = (timeEnd - timeStart)/1000;
out.print(" ");
//out.print("<!---->");
out.flush();
if(time>60)
{
break;
}
else
{
wapSearchResult.sleep(100);
}
}
boolean success = wapSearchResult.isSuccess();
//System.out.println("success="+success);
MatchResult[] result = wapSearchResult.getResult();
resultArray.setResult(result);
pageCount = wapSearchResult.getPageCount();
thisPage = wapSearchResult.getThisPage();
String title = wapSearchResult.getTitle();
thisPage = wapSearchResult.getThisPage();
%>
<%
out.print(wapWmlBean.WMLCardStart("searchResult",wapWmlBean.c2u(title)));
out.print("<p>");
int length = 0;
try
{
length = result.length;
}
catch(Exception e)
{}
if(length>0)
{
out.print(wapWmlBean.c2u("页码: "));
out.print(thisPage+"/"+pageCount);
out.print("<br/>");
out.print("<br/>");
for(int i=0;i<length;i++)
{
out.print(wapWmlBean.WML_Href_3_Parameter(wapWmlBean.c2u(result[i].title),"browseResult.jsp","titleNumber",Integer.toString(i),"thisPage",Integer.toString(thisPage),"task",Integer.toString(CommandWord.TASK_SEARCH)));
}
}
else
{
if(wapSearchResult.isSuccessEmail())
{
out.print(wapWmlBean.c2u("搜索结果已发送到邮箱!"));
}
else
{
out.print(wapWmlBean.c2u("没有符合条件的内容!"));
}
}
out.print("<br/>");
if( thisPage>1 &&thisPage<=pageCount &&email.length()==0)
{
try
{
out.print(wapWmlBean.WML_Href_2_Parameter(wapWmlBean.c2u("上一页"),"theSearchResult.jsp","thisPage",Integer.toString(thisPage-1),"task",Integer.toString(CommandWord.TASK_SEARCH_TURN)));
}
catch(Exception e)
{}
}
if( thisPage>=1&&thisPage<pageCount&&email.length()==0 )
{
try
{
out.print(wapWmlBean.WML_Href_2_Parameter(wapWmlBean.c2u("下一页"),"theSearchResult.jsp","thisPage",Integer.toString(thisPage+1),"task",Integer.toString(CommandWord.TASK_SEARCH_TURN)));
}
catch(Exception e)
{}
}
if(pageCount>3||(pageCount==3&&(thisPage==1||thisPage==3)))
{
out.print(wapWmlBean.WML_Href_2_Parameter(wapWmlBean.c2u("翻页到..."),"jump.jsp","fileName","theSearchResult.jsp","task",Integer.toString(CommandWord.TASK_SEARCH_TURN)));
}
}
%>