关于海量检索服务的部署与搜索页的制作.docx
- 文档编号:24464370
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:26
- 大小:442.28KB
关于海量检索服务的部署与搜索页的制作.docx
《关于海量检索服务的部署与搜索页的制作.docx》由会员分享,可在线阅读,更多相关《关于海量检索服务的部署与搜索页的制作.docx(26页珍藏版)》请在冰豆网上搜索。
关于海量检索服务的部署与搜索页的制作
关于海量检索服务的部署与搜索页的制作
第一部分:
海量检索的部署
1-J2SDK安装
安装很简单,只需双击下载的文件,选择安装在e:
\j2sdk1.4.2_04目录下。
设置环境变量:
右击“我的电脑”==》属性==》高级==》环境变量==》新建...
变量名:
JAVA_HOME
变量值:
e:
\j2sdk1.4.2_04
2-TOMCAT安装
运行jakarta-tomcat-5.0.28.exe按照提示安装,这里选择了Service,就是作为Windows服务来运行。
在这里设置TOMCAT使用的端口以及WEB管理界面用户名和密码,请确保该端口未被其他程序占用
选择J2SDK的安装路径,安装程序会自动搜索,如果没有正确显示,则可以手工修改,这里改为e:
\j2sdk1.4.2_04
接下来就开始拷贝文件了,成功安装后,程序会提示启动tomcat并查看readme文档。
Tomcat正常启动后会在系统栏加载图标。
在图标上右键鼠标可以看到一些设置项目
,点击Configure...或者双击图标可看到如下显示,选择Startuptype为automatic自动启动,这样每次开机后就会自动运行TOMCAT。
另外也可在这个界面点击start或stop按钮来控制tomcat的运行。
至此安装与配置都已完成,打开浏览器输入:
http:
//localhost:
8080即可看到TOMCAT的相关信息。
3-安装配置海量检索服务
将“全文检索服务”程序包中的所有文件夹拷贝到某个磁盘分区下,如E:
\,修改文件夹名为“HLFti_Win32”,
编辑FtiSvr目录下的FlyInfo.ini文件内容,如例
[Common]
;索引库路经
DatabasePath=e:
\HLFti_Win32\hlftidb\//实际存储索引库的文件路径
WordSumTime=8
;数据来源插件名
DataSourcePlugIn=HLDiskDS.dll//数据来源插件名
;数据来源插件配置文件名,要求绝对路径或者system32下的文件名,不设置,表示当前路径下的文件
PlugInConfigPath=E:
\HLFti_Win32\FtiSvr\FlyInfo.ini//手动指定到实际目录下
[Relativity]
Parameter=5
KeyWordCnt=7
SameStringCnt=5
[DataSource.FileSystem]
;栏目数
LateCount=1//1-多个栏目
;索引数据路径
DataRoot=E:
\HLFti_Win32\hlftidata\//存放待检索的页面
;URL基础部分
URLRoot=http:
////URL即检索文件的访问路径,如http;//192.168.0.123/main/index.htm
;备份路径
BakRoot=E:
\HLFti_Win32\hlftibak\//检索后页面的备份路径
;栏目标签
LateTag=0//0-多个标签
;文件码制支持:
GB18030UTF8UNICODE
CodeSet=UTF8//翔宇模版页面代码保持一致
;文件类型,不填写默认为全部类型。
示例:
一种类型:
.html多种类型:
.htm;.shtml;.xml
FileExFilter=
;过滤文件大小,单位为K,文件超过超过设置数值的将不进行索引。
默认为空,表示全部索引
FileSize=
[Tcp]
IP=192.168.0.12//海量部署服务器IP
Port=8888//海量部署服务器端口
[NewServer]
;系统使用,不允许修改
IsNew=1
[Fields]
;字段个数
FieldCount=6
DateFormat=yyyy-mm-dd
FieldName1=strUrl
FieldType1=string
FieldIndex1=0
FieldSrc1=url
;该字段用于多目录,属于系统保留字段,各项设置均不可改
FieldName2=LateTag
FieldType2=int
FieldIndex2=1
FieldSrc2=text
FieldStartTag2=
FieldEndTag2=
;以下字段可以参照用户手册的说明修改
FieldName3=DATE
FieldType3=date
FieldIndex3=1
FieldSrc3=html
FieldStartTag3=
FieldEndTag3=
FieldName4=title
FieldType4=string
FieldIndex4=1
FieldSrc4=html
FieldStartTag4=
FieldEndTag4=
FieldName5=AUTHOR
FieldType5=string
FieldIndex5=1
FieldSrc5=html
FieldStartTag5=
FieldEndTag5=
FieldName6=TEXT
FieldType6=text
FieldIndex6=1
FieldSrc6=html
FieldStartTag6=
--enpcontent-->
FieldEndTag6=
--/enpcontent-->
4-配置系统环境变量
设置环境变量:
右击“我的电脑”==》属性==》高级==》环境变量==》新建...
变量名:
Path
变量值:
E:
\j2sdk1.4.2_04;E:
\HLFti_Win32\FtiClient
5-演示页面部署及配置
将E:
\HLFti_Win32\hlftiweb这个文件夹拷贝到tomcat的webapps目录下并配置search.jsp文件参数。
<%@pagelanguage="java"contentType="text/html;charset=gbk"%>
DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en">
<%@pageimport="java.lang.Integer,hylanda.fti.client.Ftisvr,hylanda.fti.client.HLFunc"%>
<%@pageimport="java.util.regex.*"%>
<%request.setCharacterEncoding("gbk");%>
<%
StringstrFtiIp="192.168.0.12";//服务器IP
intstrFtiPort=8888;//服务器端口
StringstrDbName="indexdb";//检索数据库名此三项参数要和flyinfo.ini保持一致
StringstrSqlBase="selectstrurl,abstract(title),abstract(author),DATE,abstract(text)fromhlftidb";
intnItem=20;
intnPage=1;
intnAllPage=0;
intnIndex=0;
intnTotalCnt=0;
inthRs=0;
intnQueryCnt=0;
intnTimes=0;
if(request.getParameter("page")!
=null)
{
nPage=newInteger((request.getParameter("page"))).intValue();
}
StringstrText="";
StringstrOption="";
StringstrSql="";
Stringstr_ck="";
Stringstr_tk="";
Stringstr_ak="";
Stringstr_nk="";
Stringstr_df="";
Stringstr_dt="";
Stringstr_od="";
if(request.getParameter("searchText")!
=null)
strText=request.getParameter("searchText");
if(request.getParameter("op")!
=null)
strOption=request.getParameter("op");
if(strOpareTo("adv")==0)
{
if(request.getParameter("ck")!
=null)
str_ck=request.getParameter("ck");
if(str_pareTo("")!
=0)
strSql=strSql+"andcontains(text,\'"+str_ck+"\')";
if(request.getParameter("tk")!
=null)
str_tk=request.getParameter("tk");
if(str_pareTo("")!
=0)
strSql=strSql+"andcontains(title,\'"+str_tk+"\')";
if(request.getParameter("ak")!
=null)
str_ak=request.getParameter("ak");
if(str_pareTo("")!
=0)
strSql=strSql+"andcontains(author,\'"+str_ak+"\')";
if(request.getParameter("nk")!
=null)
str_nk=request.getParameter("nk");
if(str_pareTo("")!
=0)
//strSql=strSql+"andcontains(nodename,\'"+str_nk+"\')";
strSql=strSql+"andLateTag="+str_nk;
strText=(str_ck+""+str_tk).trim();
if(request.getParameter("df")!
=null)
str_df=request.getParameter("df");
if(str_pareTo("")!
=0)
{
StringregEx="^[0-9]{4}-(0?
[1-9]|11|12|10)-([012]?
[1-9]|10|20|30|31)$";
Patternp=Ppile(regEx);
Matcherm=p.matcher(str_df);
booleanrs=m.find();
if(rs==true)
strSql=strSql+"andDATE>='"+str_df+"'";
}
if(request.getParameter("dt")!
=null)
str_dt=request.getParameter("dt");
if(str_pareTo("")!
=0)
{
StringregEx="^[0-9]{4}-(0?
[1-9]|11|12|10)-([012]?
[1-9]|10|20|30|31)$";
Patternp=Ppile(regEx);
Matcherm=p.matcher(str_dt);
booleanrs=m.find();
if(rs==true)
strSql=strSql+"andDATE<='"+str_dt+"'";
}
if(request.getParameter("od")!
=null)
str_od=request.getParameter("od");
if(str_pareTo("date")==0)
strSql=strSql+"orderbyDATE";
if(strSpareTo("")!
=0)
strSql="where"+strSql.substring(4);
else
strSql="whereDATE>='1970-1-1'";
}
else
{
if(strTpareTo("")!
=0)
strSql="wherecontains(fulltext,\'"+strText+"\')orderbyDATE";
else
strSql="whereDATE>='1970-1-1'orderbyDATE";
}
strSql=strSqlBase+strSql;
FtisvrcFtisvr=newFtisvr();
inthConn=cFtisvr.Connect(strFtiIp,strFtiPort);
if(hConn==0)
{
out.println("网络故障:
连接服务器异常");
return;
}
elseif(cFtisvr.OpenDb(hConn,strDbName)!
=1)
{
out.println("库打开失败!
");
cFtisvr.DisConnect(hConn);
return;
}
elseif((hRs=cFtisvr.Query(hConn,strSql))==0)
{
out.println("查询失败,请检查Sql语句!
");
cFtisvr.DisConnect(hConn);
return;
}
else
{
nTotalCnt=cFtisvr.GetFileCount(hConn,strDbName);
cFtisvr.SetHighTag(hRs,"
nQueryCnt=cFtisvr.QueryGetCount(hRs);
nTimes=cFtisvr.GetQueryTime(hRs);
}
%>
functiongopage(nPage)
{
page_form.page.value=parseInt(nPage);
page_form.submit();
}
<%=strText%>
共约有<%=nQueryCnt%>项查询结果,
这是第
<%
if(nQueryCnt>0)
out.println(((nPage-1)*nItem+1)+"-"+((nPage*nItem) (nPage*nItem): nQueryCnt)); else out.println(0); %> 项结果, 搜索用时<%=nTimes%>毫秒。
--显示结果-->
<% if(nQueryCnt>0) { if(cFtisvr.QueryMoveNext(hRs,(nPage-1)*nItem)==1) { for(nIndex=0;nIndex { bytepszTextBuf[]=newbyte[2550]; //文章URL cFtisvr.QueryGetAt(hRs,1,pszTextBuf); StringstrRsUrl=newString(pszTextBuf); strRsUrl.trim(); //文章标题 cFtisvr.QueryGetAt(hRs,2,pszTextBuf); StringstrRsTitle=newString(pszTextBuf); strRsTitle.trim(); //文章作者 cFtisvr.QueryGetAt(hRs,3,pszTextBuf); StringstrAuthor=newString(pszTextBuf); strAuthor.trim(); //文章日期 cFtisvr.QueryGetAt(hRs,4,pszTextBuf); StringstrDate=newString(pszTextBuf); strDate.trim(); //文章正文 cFtisvr.QueryGetAt(hRs,5,pszTextBuf); StringstrRsText=newString(pszTextBuf); strRsText.trim(); //strRsText=strRsText.replaceAll("? ? ",""); intintRecord=(nPage-1)*nItem+nIndex+1; out.print(" out.print(" out.print(""); //out.print(" out.print(" out.print(" if(strRsTitle.length()<0) strRsTitle="无标题"; out.print(""); "); ");
out.print("
out.print(""+strRsText+"
out.print("
out.print(""+"日期:
out.print("
out.print(""+"作者:
out.print("
if(cFtisvr.QueryMoveNext(hRs,1)!
=1)
break;
}
}
nAllPage=(int)(nQueryCnt/nItem);
if((nQueryCnt%nItem)>0)
nAllPage++;
}
cFtisvr.FreeQuery(hConn,hRs);
cFtisvr.DisConnect(hConn);
%>
--显示结果结束-->
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 海量 检索 服务 部署 搜索 制作
![提示](https://static.bdocx.com/images/bang_tan.gif)