1. 程式人生 > >jplogicv1.0開發開發案例之知識庫文件資訊索引檢索(類仿百度搜索、類google搜尋)

jplogicv1.0開發開發案例之知識庫文件資訊索引檢索(類仿百度搜索、類google搜尋)

基於很多專案中都都可能會使用到針對海量文件資訊進行實時檢索的需要!對於使用者而言比較習慣於百度搜索的使用!本文針對海量文件檢索的需求進行描述!針對海量的文件資料我們需要做到最起碼兩點:1、高效索引  2、高效搜尋。當然做到這兩點我們需要在我們的專案中完成多道工序,根據索引框架的特點,做相應的優化工作,這樣基本上可以完成80%以上的需要,那20%的缺陷可能來自於索引框架本身的侷限,比如lucene本身的一些缺點,也可能來自你的編碼上的設計。閒話少說,如下是本人針對很多專案中將會使用的一些文件檢索的開發案例。開發案例是在jplogic上實現,可移植到其他專案中,如下是海量文件檢索功能實現(歡迎進入群【376447127

】):

相對簡潔的頁面(不需要美工額外的設計,每個工程師都可以定製漂亮的介面)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-<span style="color:#ff0000;">transitional</span>.dtd"> 
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/tagtld/htmlTagComponet.tld" prefix="JB"%>
<html>
  <head>
    <style>
        html,body {
			width: 100%;
			height: 100%;
			margin: 0px;
			padding: 0px;
			overflow: hidden;
		}
    </style>
    <JB:ComponentBase id="bomponentBase"  isJudgeSession="true" ></JB:ComponentBase>
    <title>全文檢索列表</title>
	<script>
	    var formOperate = new FormOperateObject();  
		function okOperate(){
		    closeBlDialog();
		}
	    function noOperate(){
		    closeBlDialog();
		}
		//全文檢索操作
		function toolbarall_textOperate(id) {
		    //搜尋按鈕
			if (id == 'all_text_Toolbar4') {
				var value = $.trim(toolbar_all_text_Toolbar.getValue('all_text_Toolbar2'));
				if (value == '') {
					OpenBlDialog('提示','搜尋關鍵字不能為空!','WARN','','','okOperate()','noOperate()','','');
				} else {
					var url = 'jsp/JpSystem/doc/DocAllTextQueryResultForm.jsp?queryParam=' +value;	
					url = formOperate.changeURLParamValue(url,'queryParam',value);				
					layout_all_text_layout.cells('a').attachURL(url);
				}
			}
		}
	</script>
  </head>
<body id="all_text_body" >
   	<div id="query_result" style="padding:4px;width:99%;height:100%;font-family:'宋體';font-size:50px;overflow:auto;display: none;text-align: center;">
   	<b>歡迎進入知識庫資訊檢索,輸入相應的知識庫資訊關聯的<font color='red'>關鍵字</font>即可</b>
    </div>
    <!-- 佈局管理器 -->
	<JB:LayoutComponent layoutPattern="1C" parentId="all_text_body" id="all_text_layout" autoReSize="true" isAttachProgress="true">
        <!-- 全文操作 -->
	    <JB:LayoutCellComponent id="abc" layoutCellTitle="全文檢索" layoutId="all_text_layout" layoutCellName="a"  embeddedToolbarId="all_text_Toolbar" attachObjectId="query_result"  hiddenHead="false" layoutCellHeigth="600">
			<JB:ToolBarComponent id="all_text_Toolbar" layoutCellToolbarId="all_text_Toolbar" onclick="toolbarall_textOperate" title="全文檢索操作" gridId=""> 
			    <JB:ToolBarCellComponent id="all_text_Toolbar" cellType="text" btnSelectName="<b>關鍵詞搜尋</b>" imgDisabled="save_dis.gif" imgEnabled="save.gif" itemId="0" optionItems=""></JB:ToolBarCellComponent>
			    <JB:ToolBarCellComponent id="all_text_Toolbar" cellType="separator" imgDisabled="" imgEnabled=""  itemId="1" optionItems=""></JB:ToolBarCellComponent>
			    <JB:ToolBarCellComponent id="all_text_Toolbar" cellType="input" btnSelectName="" inputTextWidth="600" imgDisabled="new_dis.gif" imgEnabled="new.gif"  itemId="2" optionItems=""  ></JB:ToolBarCellComponent>
			    <JB:ToolBarCellComponent id="all_text_Toolbar" cellType="separator" imgDisabled="" imgEnabled=""  itemId="3" optionItems=""></JB:ToolBarCellComponent>
			    <JB:ToolBarCellComponent id="all_text_Toolbar" cellType="button" btnSelectName="<b>開始檢索</b>" imgDisabled="new_dis.gif" imgEnabled="new.gif"  itemId="4" optionItems=""></JB:ToolBarCellComponent>
			</JB:ToolBarComponent>
		</JB:LayoutCellComponent>
	</JB:LayoutComponent>
  </body>
  </html>

系統介面:

海量文件檢索首頁

 

知識庫資料上傳以及追加

檢索結果列表

文件預覽

文件下載

下載結果

相關推薦

jplogicv1.0開發開發案例知識庫資訊索引檢索仿google搜尋

基於很多專案中都都可能會使用到針對海量文件資訊進行實時檢索的需要!對於使用者而言比較習慣於百度搜索的使用!本文針對海量文件檢索的需求進行描述!針對海量的文件資料我們需要做到最起碼兩點:1、高效索引  2、高效搜尋。當然做到這兩點我們需要在我們的專案中完成多道工序,根據索引框

【Unity遊戲開發】toluawrap的原理與使用

nop 微信 attr hiera n) 接下來 system 作者 prim   本文內容轉載自:https://www.cnblogs.com/blueberryzzz/p/9672342.html 。非常感謝原作者慷慨地授權轉載,比心!@blueberryzzz

APP開發:基於Bmob後臺共享移動web

前言 本篇部落格主要用來記錄我個人移動web小專案開發過程,當然還有一些關於javascript如何使用Bmob後臺的API,現在網上關於javascript使用Bmob後臺API的例項太少了,我目前又不會搞後臺開發,加上我的這個專案打算幾個月後提交併參加比賽有些急,後臺也來不及去研

程式設計師開發學習利器篇-你真的會用

以下內容,開發初學者看,熟手略過。 論語有言: 工欲善其事 必先利其器 ,意思是工匠想要使他的工作做好,一定要先讓工具鋒利。比喻要做好一件事,準備工作非常重要。 這對於我們程式設計師做開發時也是這樣,充足且好的準備工作,不但可以提高我們的開發效率,同時也可以讓我們事半功倍

Delphi 路 — 操作函數 說明和使用說明

-a ... ado 文件大小 返回值 系統文件 -- 大小 可選   Delphi 之路 — 文件操作函數 (說明和使用說明) //判斷文件是否存在       FileExists //判斷文件夾是否存在       DirectoryExists //刪除文

Linux學習筆記1——和目錄管理硬連接和軟連接(連結檔,相當於快捷方式

class 學習linux lock 訪問 接下來 所有 sdn ext test 在這節將要學習linux的連接檔,在之前用"ls -l" 查看文件屬性的命令時, 其中第二個屬性是連接數。那麽這個連接數是幹什麽的?這就要理解inode。 先說一下文件是怎麽存儲的。

爬蟲任務二:爬取(用到htmlunit和jsoup)通過引擎關鍵字取到的新聞標題和url,並保存在本地主體借鑒了網上的資料

標題 code rgs aps snap one reader url 預處理 采用maven工程,免著到處找依賴jar包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:

selenium+有道翻譯的簡單testcase執行-----用例報告HTMLTestRunner

file 第一個 stream str utf-8 equal code col sele 本篇主要實現selenium自動化測試之百度搜索+有道翻譯的簡單測試用例執行,並通過HTML TestRunner生成html測試報告.這是前不久跟著視頻學習的時候,練習的第一個HT

案例:實現提示

分析:在輸入框中輸入詞彙後,提示出以該關鍵字開頭的存在資料庫中的記錄 一、搭建環境 1、定義首頁 <body> <center> <input type="text" name="word" id="word" style="width: 600

案例

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>百度搜索</title> <style>

案例:模擬

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style>

09.VUE學習watch監聽屬性變化實現欄功能ajax異步請求數據

class ivr url 實現類 int php head 實現 sta cmd下安裝axios npm install axios 安裝好後,會多出node_modules文件夾 思路: 監聽data裏的word改變時,發送ajax異步請求數據, 把返回的數據賦值給d

09.1.VUE學習watch監聽屬性變化實現欄功能ajax非同步請求資料,返回陣列

09.1html裡 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge">

word在頁面上瀏覽,類似文庫形式

1、伺服器上已經上傳有需要的word文件,目前需要做的是將word文件按百度文庫的樣子顯示在頁面上,直接顯示不可以,需要兩個軟體,openoffice和swftools工具,其中openoffice安裝在C:/Program File/OpenOffice 4/下,啟動op

引擎優化指南2.0 摘錄

修改網站標題是否會對網站排名帶來消極影響?  ? title是極重要的內容。大幅修改,可能會帶來大幅波動。所以請慎重對待網頁標題。建議按照我們上面所推薦的寫法,實事求是的將頁面主旨反映在標題中即可,如無必要,儘量不做大幅修改。修改首頁的meta description是否會受到懲罰?  ? meta desc

關於Inodes被占滿如何解決linux報No space left on device錯誤

ava onf etc 查看 filesyste lin 關於 使用 df -h 原因與解決方法一,磁盤inode被用光導致/data目錄下無法創建文件 touch atouch: cannot touch `a‘: No space left on device磁盤只使

hadoop mapreduce開發實踐HDFS分發by streaming

submit ast nap direct 如同 lis slots cal ado 1、分發HDFS文件(-cacheFile) 需求:wordcount(只統計指定的單詞),但是該文件非常大,可以先將該文件上傳到hdfs,通過-cacheFile的方式進行分發; -ca

iOS 開發 pdf 的載入與瀏覽的 4 種方式

前言 在我們的開發中,有些像電子書型別的app的開發會涉及到pdf文件的載入與展示。由於筆者專案中正好涉及到這塊,於是將pdf常用的幾種載入方式做個總結。以供後面可能用到的同學做個參考。 正文 通常我們用到的pdf文件的載入方式有4種: UIWebView載入本地或者

Apache PDFbox開發指南PDF讀取

相關文章: 1、介紹 Apache PDFbox是一個開源的、基於Java的、支援PDF文件生成的工具庫,它可以用於建立新的PDF文件,修改現有的PDF文件,還可以從PDF文件中提取所需的內容。Apache PDFBox還包含了數個命令列工具。

程式設計師與架構師的差別的思維方式開發感悟

最近帶一個畢業生,他讓我對文件的撰寫有了一些新的領悟,跟以前的結合起來一起說一下: 首先,我個人在寫文件方面有2個特點:簡潔,清晰 簡潔:能用一句話說清楚的絕不用第二句,用最簡單的句子 清晰:結構清晰,讓人一目瞭然;邏輯清晰,儘量減少讀者的理解成本;重點清晰。 對內的文件 對