门户页的搜索过程

门户页的搜索 过程


1 ../search_Document_List.do?category=news&keyword='+encodeURIComponent(keyWord)

2 searchNameContext.xml :

<bean name="/ search_Document_List.do" class="com.trs.cis4.search.view.controller.Search_Document_List_Controller"> <property name="successView" value="search/search_document_list" /> </bean>

3 Search_Document_List_Controller :

public ModelAndView _handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception, ExceptionUtil { PageInfo pageInfo = PageData.getRequestParams(request); Map<String, Object> model = new HashMap<String, Object>(); String category = request.getParameter(" category"); if (StringUtil.isNotEmpty(category)) { model.put("category", category); } ShowProperty showProperty = CisFileReader.getSysShowProperty(); String channelid = request.getParameter("channelid"); List<SysChannel> sysChannels = null; if ("search".equals(category)) { sysChannels = this.sysChannelLogic.getAllShowChannels(Integer.valueOf(SysConst.PORTAlTYPE_SEARCH)); model.put("sysChannels", sysChannels); } model.put("channelid", channelid); List<SysChannel> channels = this.sysChannelLogic.getChannelsByIds(channelid); QueryForm queryForm = SearchParamUtil.getQuery(request, showProperty, channels); // keyword 封装在quertForm对象中 queryForm.setChannelids(channelid); queryForm.setPrefixChar(this.prefixChar.trim()); queryForm.setSuffixChar(this.suffixChar.trim()); if (StringUtil.isEmpty(queryForm.getKeyWordAll())) { String redirectUrl = request.getParameter("redirectUrl"); if (StringUtil.isNotEmpty(redirectUrl)) return new ModelAndView(redirectUrl, model); if (StringUtil.isNotEmpty(this.defaultRedirectView)) { return new ModelAndView(this.defaultRedirectView, model); } } String forbidWords = CisFileReader.getSysForbidWords(); String keyWord = queryForm.getKeyWord(); if ((StringUtil.isNotEmpty(keyWord)) && (forbidWords.indexOf(keyWord.trim()) != -1)) { pageInfo.setListItems(new ArrayList()); pageInfo.setAllRecords(0); model.put("pageInfo", pageInfo); model.put("showProperty", showProperty); request.getSession().removeAttribute("queryFormSession"); } else { pageInfo = setCountPerPage(request, pageInfo, showProperty); String orderby = disposeOrderBy(request, pageInfo, model, showProperty.getIfUseUrllevel()); model.put("orderby", orderby); pageInfo.setPicSize(1); long bt2 = System.currentTimeMillis(); String searchCondition = queryForm.getTrsSql(); if (queryForm.getListType() == SysConst.CHANNEL_LISTTYPE_PIC) pageInfo.setWebShowFields(this.docDocumentLogic.getListPicFieldsVector()); else if (queryForm.getListType() == SysConst.CHANNEL_LISTTYPE_TITLE) pageInfo.setWebShowFields(this.docDocumentLogic.getListFieldsVector()); else { pageInfo.setWebShowFields(this.docDocumentLogic.getListBriefFieldsVector()); } this.log.info("查询条件为:" + searchCondition); List searchResult = this.docDocumentLogic.search(searchCondition, pageInfo, true); request.getSession().setAttribute("queryFormSession", queryForm); long consumeTime = System.currentTimeMillis() - bt2; this.log.info("检索共耗时:" + consumeTime); if (searchResult != null) { List dataList = (List) searchResult.get(1); pageInfo.setListItems(dataList); pageInfo.setAllRecords(((Integer) searchResult.get(0)).intValue()); } else { pageInfo.setListItems(new ArrayList()); pageInfo.setAllRecords(0); } if (showProperty.getIfUsingCkm().booleanValue()) { String[] pinyin = pinyinCheck(keyWord, queryForm, orderby, pageInfo, showProperty); model.put("pinyin", pinyin); String[] recomWords = getRelatedPhrases(keyWord); 加载词典demo失败 model.put("recomWords", recomWords); } if (queryForm.getListType() != SysConst.CHANNEL_LISTTYPE_PIC) { disposeSimRelCount(pageInfo); } DocUtils.checkPicture(pageInfo.getListItems()); if (showProperty.getIfUsingRdb().booleanValue()) { String filterKeyWord = queryForm.getKeyWordAll(); filterKeyWord = filterKeyWord(filterKeyWord); if ((StringUtil.isNotEmpty(filterKeyWord)) && (filterKeyWord.length() < 20)) { try { saveOrUpdateKeyWord(filterKeyWord); } catch (Exception e) { this.log.info("save keyword exception!", e); } } List spanList = this.docTimeSpanLogic.getShowTimeSpans(showProperty.getTimeSpanNum().intValue()); model.put("spanList", spanList); getFakeResults(request, pageInfo, model, queryForm, keyWord); } PageData.calculationPageParams(pageInfo); model.put("showProperty", showProperty); model.put("pageInfo", pageInfo); model.put("consumeTime", (consumeTime / 1000L) + "." + (consumeTime % 1000L)); model.put("timespan", request.getParameter("timespan")); model.put("queryForm", queryForm); searchCondition = searchCondition.replaceAll("\\\\", "\\\\\\\\"); model.put("searchCondition", searchCondition); } return new ModelAndView(getSuccessView(), model); }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值