<%@ page session="true" contentType="text/html; charset=euc-kr" %>
<%@ page import="java.util.* "%>
<%@ page import="java.io.*" %>
<%@ page import="java.net.*" %>
<%@ page import="com.verity.search.*" %>
<%@ page import="com.verity.k2.*" %>
<%
int docStart = 1; //검색 시작번호
int docPage = 10; //페이지 리스트 개수
int maxDocs = 1000; //검색할 전체 건수
int totalDocs = 0; //검색 건수
int PBS_MAX_COUNT = 1; //하이라이팅 처리해서 불러올 문단수
int PBS_MAX_BYTES = 300; //하이라이팅 처리해서 불러올 문자열수
//String hostport = "10.201.27.53:9900"; //검색엔진 정보
String hostport = "210.102.100.215:9901"; //검색엔진 정보
String START_HL_TAG = "<font color=red>"; //하이라이트 시작 태그
String END_HL_TAG = "</font>"; //하이라이트 종료 태그
String queryParser = "3soft"; //쿼리파서 종류\
String[] fields = {"V_TITLE","VDKSUMMARY","VDKPBSUMMARY"}; //필드 정의
String[] colls = {"KEM"}; //검색할 컬렉션 정의
String queryText = ""; //엔진에 던질 검색어
String query = ""; //엔진에 던질 검색어
String sortSpec = ""; //정렬
%>
<%
//request.setCharacterEncoding("UTF-8");
//response.setContentType("text/html;charset=" + "utf-8");
if(request.getParameter("docStart")!=null && request.getParameter("docStart").trim().length()>0)
docStart = Integer.parseInt(request.getParameter("docStart"));
if(request.getParameter("docPage")!=null && request.getParameter("docPage").trim().length()>0)
docPage = Integer.parseInt(request.getParameter("docPage"));
if(request.getParameter("query")!=null) query = request.getParameter("query");
//if(query.trim().length()>0) queryText = "`" + query + "`";
queryText = "`대한민국`";
%>
<%
Result result = null; //검색결과 Set
try {
/*** 기본으로 넣어줄 값 ***/
VSearch vs = new VSearch(); // 검색엔진
vs.setUrlStringsMode(false);
vs.setServerSpec(hostport);
vs.setCharMap("utf8");
vs.setQueryParser(queryParser); //locale QP 사용시 parser
vs.setQueryText(queryText);
vs.setDateFormat("${yyyy}-${mm}-${dd}");
vs.setSortSpec(sortSpec);
vs.setDocsStart(docStart);
vs.setDocsCount(docPage);
vs.setMaxDocCount(maxDocs);
/*** 기본으로 넣어줄 끝 ***/
/*** 동적요약문 처리 시작***/
vs.setSummaryMaxPassageCount(PBS_MAX_COUNT);
vs.setSummaryMaxPassageBytes(PBS_MAX_BYTES);
VFieldHighlightParameters objFieldHLParams = vs.getFieldHighlightParameters();
// objFieldHLParams.addFieldHighlight("lims_title", START_HL_TAG, END_HL_TAG); // 타이틀에 하이라이트하면 보기 싫어요.
objFieldHLParams.addFieldHighlight("VDKPBSUMMARY", START_HL_TAG, END_HL_TAG);
/*** 동적요약문 처리 끝 ***/
for ( int i = 0; i < fields.length; i++) // 필드를 추가
{
vs.addField(fields[i]);
}
for ( int j = 0; j<colls.length; j++) // 컬렉션 추가
{
vs.addCollection(colls[j]);
}
result = vs.getResult();
totalDocs = result.docsFound;
} catch(Exception e) {
throw new RuntimeException(e.getMessage());
}
%>
<html>
<head>
<script language="javascript">
//검색
function goSearch(form) {
if (form.queryText.value == "") {
alert('검색어를 입력하세요!');
return false;
}
form.submit();
return false;
}
//페이지 이동 처리
function GotoPage(form, docStart)
{
form.docStart.value = docStart * form.docPage.value + 1;
form.submit();
return;
}
</script>
</head>
<body>
<table width="100%" border="0" align="center" cellpadding="1" cellspacing="0">
<tr>
<td>
<form name="search" onsubmit="return goSearch(this);">
<input type="hidden" name="docStart" value="<%=docStart%>">
<input type="hidden" name="docPage" value="<%=docPage%>">
<input type="text" name="query" value="<%=query%>">
<input type="submit" value="Search!!">
</form>
</td>
</tr>
<tr>
<td>검색어:<%=query%>, <span class="style2">검색결과:</span> <font color="#CC3300">[<%=totalDocs%>건]</font> </td>
</tr>
<tr height="15"><td> </td></tr>
<%
Enumeration Docs = result.documents().elements();
while (Docs.hasMoreElements()) {
Document doc = (Document)Docs.nextElement();
%>
<tr><td style="padding-left:20px;font-size:9pt"><%=doc.getPassageBasedSummary()%></td></tr>
<tr><td height="5"></td></tr>
<% } //while%>
</table>
<%
// Page Navigate
long Total, Page, TotalPage;
long Start;
long CurPage, StartPage, EndPage;
long j;
Total = totalDocs-1;
Start = docStart;Page = docPage;
CurPage = Start / Page;
StartPage = ( Start / ( 10 * Page ) ) * 10;
TotalPage = Total / Page;
EndPage = StartPage + 9 > TotalPage ? TotalPage : StartPage + 9;
%>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr height="36">
<td>
<% if (StartPage != 0) { %>
<a href="JavaScript:GotoPage(search, 0)">[처음]</a>
<a href="JavaScript:GotoPage(search, <%=StartPage-10%>)">[이전10개]</a>
<%}//end of if%>
<%
for (j = StartPage ; j <= EndPage ; j++) {
if( j == CurPage ){
%>
| <FONT COLOR="royalblue"><B><%=j+1%></B></FONT>
<%
} else {
%>
| <A HREF="JavaScript:GotoPage(search,<%=j%>)"><%=j+1%></a>
<%
}
} //for
%>
|
<%
if (TotalPage > EndPage) {
EndPage = EndPage + 1;
%>
<a href="JavaScript:GotoPage(search,<%=EndPage%>)">[이후10개]</a>
<a href="JavaScript:GotoPage(search,<%=TotalPage%>)">[끝]</a>
<% }//end of if %>
</td>
</tr>
</table>
</body>
</html>
'IT-Consultant' 카테고리의 다른 글
Lucene 의 구조를 잘 설명해 놓은 사이트 링크 (0) | 2008.10.29 |
---|---|
vsearch sample source (0) | 2008.10.29 |
특정 container 죽이기.. (0) | 2008.10.29 |
특정 container 죽이기.. (0) | 2008.10.29 |
오랜된 아파트라 보기 흉한 곳을 그냥 넘어갔었는데... (0) | 2008.10.29 |