TWI742568B - 通用型資料庫模糊搜索的電腦程式產品及裝置 - Google Patents
通用型資料庫模糊搜索的電腦程式產品及裝置 Download PDFInfo
- Publication number
- TWI742568B TWI742568B TW109108846A TW109108846A TWI742568B TW I742568 B TWI742568 B TW I742568B TW 109108846 A TW109108846 A TW 109108846A TW 109108846 A TW109108846 A TW 109108846A TW I742568 B TWI742568 B TW I742568B
- Authority
- TW
- Taiwan
- Prior art keywords
- search
- query language
- database
- record
- standard query
- Prior art date
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本說明書涉及一種通用型資料庫模糊搜索的電腦程式產品,包含能夠被應用程式伺服器的處理單元載入並執行的程式碼:取得搜索字串、搜索行動類別,指出首次搜索的資訊;依據搜索字串產生標準查詢語言指令;以及傳送標準查詢語言指令到資料庫模組,用於從關聯式資料庫的資料表中搜索出關鍵字欄位中具有搜索字串的所有記錄並取得結果集,使得圖形使用介面依據結果集顯示列表的內容,其中,資料表中的每一筆記錄的關鍵字欄位的值蒐集資料表中的同一筆記錄的多個其他欄位的值。
Description
本發明關連於一種資料檢索和呈現技術,特別是一種通用型資料庫模糊搜索的電腦程式產品及裝置。
因應資訊爆增的時代,介面的不友善或者執行速度太慢,往往影響使用者的使用意願。目前,關聯式資料庫系統(Relational Database)廣泛應用於各式各樣的資料儲存、更新和搜索。然而,在關聯式資料庫系統中提供模糊搜索的功能會提升設計的複雜度,並且拉長執行時間。因應搜索結果可能會太多而需要分頁顯示,模糊搜索還需要提供適應性的分段搜索功能。此外,由於不同廠商的關聯式資料庫系統會提供不同的進階功能(Advanced Functions)應用一個廠商提供的功能所完成的模糊搜索,往往無法在其他廠商的關聯式資料庫系統運行。因此,需要一種通用型資料庫模糊搜索的電腦程式產品及裝置,用以改善如上所述的問題。
有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。
本說明書涉及一種通用型資料庫模糊搜索的電腦程式產品,包含能夠被應用程式伺服器的處理單元載入並執行的程式碼:取得搜索字串、搜索行動類別,指出首次搜索的資訊;依據搜索字串產生標準查詢語言指令;以及傳送標準查詢語言指令到資料庫模組,用於從關聯式資料庫的資料表中搜索出關鍵字欄位中具有搜索字串的所有記錄並取得結果集,使得圖形使用介面依據結果集顯示列表的內容。
本說明書更另涉及一種通用型資料庫模糊搜索的裝置,包含儲存裝置和處理單元。儲存裝置儲存關聯式資料庫。處理單元取得搜索字串、搜索行動類別,指出首次搜索的資訊;依據搜索字串產生標準查詢語言指令;以及傳送標準查詢語言指令到資料庫模組,用於從關聯式資料庫的資料表中搜索出關鍵字欄位中具有搜索字串的所有記錄並取得結果集,使得圖形使用介面依據結果集顯示列表的內容。
資料表中的每一筆記錄的關鍵字欄位的值蒐集資料表中的同一筆記錄的多個其他欄位的值。
上述實施例的優點之一,通過如上所述的關鍵字欄位的設置及使用標準查詢語言指令來搜索關鍵字欄位,讓關聯式資料庫的模糊搜索能夠更有效率,並且能通用於不同的關聯式資料庫。
本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。
以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的“包含”、“包括”等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如“第一”、“第二”、“第三”等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
本發明實施例提出一種網路系統架構,包含伺服器(servers)與多部客戶端(clients)。圖1係依據本發明實施例的網路系統架構圖。應用程式伺服器110、桌上型電腦151、平板電腦153以及手機155之間可透過網路100彼此通訊,網路100可為網際網路(Internet)、有線區域網路(wired Local Area Network,LAN)、無線區域網路,或以上的任意組合。桌上型電腦151、平板電腦153以及手機155可稱為客戶端,通過網路100執行應用程式伺服器110上運行的服務。應用程式通常由服務提供者(Service Provider)開發並部署到應用程式伺服器110,包含各式各樣的業務邏輯,可涵蓋但不限於數位銀行管理、網路銀行、行動客服、企業內部流程管理、大數據存儲、大數據資料整合、大數據資料檢索等領域。
圖2係依據本發明實施例的運算裝置的系統架構圖。此系統架構可實施於應用程式伺服器110、桌上型電腦151、平板電腦153以及手機155中之任一者,至少包含處理單元210。處理單元210可使用多種方式實施,例如以專用硬體電路或通用硬體(例如,單一處理器、具平行處理能力的多處理器、圖形處理器或其他具運算能力的處理器),並且在執行程式碼或軟體時,提供之後所描述的功能。系統架構另包含記憶體250及儲存單元240,記憶體250儲存程式碼執行過程中需要的資料,例如,變數、資料表(Data Tables)等,儲存單元240儲存各式各樣的電子檔案,例如,網頁、文件、音訊檔、視訊檔等。系統架構另包含通訊介面260,讓處理單元210可藉以跟其他電子裝置進行溝通。通訊介面260可以是無線電信通訊模組(Wireless Telecommunications Module)、區域網路(Local Area Network, LAN)通訊模組或無線區域網路通訊模組(WLAN)。無線電信通訊模組(Wireless Telecommunications Module)可包含支援2G、3G、4G或以上技術世代的任意組合的調變解調器(Modem)。輸入裝置230可包含鍵盤、滑鼠、觸控面板等。使用者可按壓鍵盤上的硬鍵來輸入字元,藉由操作滑鼠來控制鼠標,或者是在觸控面板製造手勢來控制執行中的應用程式。手勢可包含單擊、雙擊、單指拖曳、多指拖曳等,但不限定於此。顯示單元220可包含顯示面板(例如,薄膜液晶顯示面板、有機發光二極體面板或其他具顯示能力的面板),用以顯示輸入的字元、數字、符號、拖曳鼠標的移動軌跡、繪製的圖案或應用程式所提供的畫面,提供給使用者觀看。
關聯式資料庫是一種高度結構化的資料組織方式,具體來說,是建立在各式各樣關聯模型上的資料庫。舉例來說,一個資料庫可以包含多個資料表,每個資料表包含多個欄位,而資料表與資料表之間具有特定的關聯關係。然而,使用者在搜尋資料時,並不理解關聯式資料庫內部複雜的組織,而只是很單純的想輸入幾個關鍵字就能得到結果。舉例來說,使用者想要在網路書店上找一本關於日本京都的旅遊書時,他可能期望下關鍵字“京都"、“旅遊"就能找到結果。針對使用者的期望,需要提供一種模糊搜索方式,讓使用者在不需要知道關聯式資料庫實際組織的情況下,就能得到所需的結果。例如,使用者不需要知道可以搜索某個資料表中的書籍分類欄位為“旅遊"和書名欄位中包含“京都"兩個字,才能得到想要的結果。
為了在關聯式資料庫提供模糊搜索的功能,本發明實施例可在應用伺服器110中提供一種通用型資料庫模糊搜索系統。圖3係依據本發明實施例的通用型資料庫模糊搜索系統300的架構圖。資料庫模組350包含具有處理標準查詢語言(Standard Query Language,SQL)指令的能力的關聯式資料庫(Relational Database),例如,甲骨文(Oracle)、SQL伺服器、MySQL、H2、Access等資料庫。應用伺服器110的儲存裝置240提供非揮發的儲存空間,用於儲存關聯式資料庫。前端模組310、後端服務模組320和資料存取模組330包含能夠被應用程式伺服器110的處理單元210載入並執行的軟體程式碼,用於完成如下所述的功能。
圖4係依據本發明實施例的表結構(Table Schema)的示意圖。舉例來說,資料庫400包含書籍資料表410和分類資料表420。書籍資料表410的主鍵(Primary Key)是書籍識別碼”BookID”,分類資料表420的主鍵是類別識別碼”CategoryID”。書籍資料表410中也包含類別識別碼”CategoryID”,作為外來鍵(Foreign Key),關聯到分類資料表420。為了加速將來模糊搜索的效能,書籍資料表410包含關鍵字欄位419,用於蒐集使用者將來可搜索欄位的值成為一個字串,例如分類資料表420的分類名稱425、書籍資料表410的書籍名稱411、描述413、作者415、出版者417等欄位。當新增一筆記錄到書籍資料表410或更新書籍資料表410的記錄後,該記錄的關鍵字欄位419也要隨著更新。
舉一個例子來說,資料存取模組350可指示資料庫模組350執行以下SQL指令來新增一筆記錄到書籍資料表410:
INSERT INTO Book (BookID, CategoryID, BookName, Description, Author, Publisher, PublishDate, SalesQuantity, Keyword) VALUES (0, 7, ‘5日京都漫旅’, ‘含大版、神戶的介紹’, ‘陳大寶’, ‘就愛玩’, ‘2020/3/5’, 0, ‘’ );
SELECT CategoryName FROM Category c WHERE CategoryID=7;
UPDATE Book SET Keyword=c.CategoryName+’|’+‘20日京都慢旅’ +’|’+‘含大版、神戶的介紹’+’|’+‘陳大寶’+’|’+‘就愛玩’+’|’+‘2020/3/5’ WHERE BookID=0;
上述SQL指令執行後,書籍資料表410中書籍識別碼為0的記錄的關鍵字欄位419就會填上字串“旅遊|20日京都慢旅|含大版、神戶的介紹|陳大寶|就愛玩|2020/3/5",可以作為將來進行模糊搜索的依據。
接著,舉另一個例子來說,資料存取模組350可指示資料庫模組350執行以下SQL指令來修改書籍資料表410的上述記錄:
UPDATE Book SET BookName=’5日京都漫旅’ WHERE BookID=0;
SELECT BookName, Description, Author, Publisher, PublishDate FROM Book b WHERE BookID=0;
SELECT CategoryName FROM Category c WHERE CategoryID=7;
UPDATE Book SET Keyword=c.CategoryName+b.BookName +b.Description+b.Author+b.Publisher+b.PublishDate WHERE BookID=0;
上述SQL指令執行後,書籍資料表410中書籍識別碼為0的記錄的關鍵字欄位419就會改為字串“旅遊|5日京都漫旅|含大版、神戶的介紹|陳大寶|就愛玩|2020/3/5",可以作為將來進行模糊搜索的依據。
通用型資料庫模糊搜索系統可提供一個圖形使用者介面(Graphical User Interface,GUI),協助使用者輸入搜索的關鍵字,並且讓最後為數眾多的搜索結果能夠分頁顯示。
圖5A和圖5B係依據本發明實施的圖形使用者介面示意圖。GUI 500-1可顯示於手機155的顯示單元220,包含輸入框510、搜索按鈕520、結果列表530和下頁按鈕540。GUI 500-2可顯示於應用程式伺服器110、桌上型電腦151或平板電腦153的顯示單元220,包含輸入框550、搜索按鈕560、結果列表570、上頁按鈕580和下頁按鈕590。前端模組310可回應使用者在GUI 500-1、GUI 500-2和其他不同但類似GUI上的操作,並據此產生適當的參數以傳遞到後端服務模組320,符合響應式網站設計(Responsive Web Design,RWD)的精神。舉例來說,GUI 500-1或500-2是網路書店的範例搜索頁面。使用者只需要通過輸入框510或550鍵入想要搜索的關鍵字,並在輸入完成後點擊搜索按鈕520或560即可請求通用型資料庫模糊搜索系統提供搜索到的結果(例如,書籍的相關資料)。前端模組310可包含相應於搜索按鈕520及560的點擊事件管理者(Click Event Handler),當應用程式伺服器110的處理單元210在偵測到相應於搜索按鈕520或560的點擊事件時,載入並執行相應點擊事件管理者的程式碼,用於產生相應於輸入框510或550中鍵入字串的參數,並傳遞這些參數到後端服務模組320。例如,參數中包含兩個字串:“京都"、“旅遊",首次搜索的行動類別(Action Type),以及排序欄位。後端服務模組320將接收的參數傳送到資料存取模組330,並且提供資料完整性和流程的控制,用來從資料存取模組330獲得結果集(Result Set),並且回覆給前端模組310。接著,前端模組310可將結果集傳送到GUI 500-1或500-2進行顯示。舉例來說,GUI 500-1中顯示列表530,包含搜索到書籍中前6本的書名。GUI 500-1中顯示列表570,包含搜索到書籍中前5本的輪廓資料(Profile),例如,書名、作者和出版社。
GUI 500-1和GUI 500-2還可分別提供下頁按鈕540和上頁按鈕580和下頁按鈕590,用來讓使用者點擊下頁按鈕540或590,或者上頁按鈕580即可請求通用型資料庫模糊搜索系統提供更多的結果(例如,下5本書籍的相關資料)。前端模組310可包含相應於下頁按鈕540及590和上頁按鈕580的點擊事件管理者,當應用程式伺服器110的處理單元210在偵測到相應於下頁按鈕540或590,上頁按鈕580的點擊事件時,載入並執行相應點擊事件管理者的程式碼,用於產生相應參數,並傳遞這些參數到後端服務模組320。例如,關於下頁按鈕540或590,參數中包含兩個搜索字串:“京都"、“旅遊",再次向後搜索的行動類別,以及結果列表(例如列表530或570)中最後一筆資料的書籍識別碼(Book ID)。關於上頁按鈕580,參數中包含兩個字串:“京都"、“旅遊",再次向前搜索的行動類別,以及結果列表(例如列表530或570)中最前一筆資料的書籍識別碼(Book ID)。後端服務模組320同樣將接收的參數傳送到資料存取模組330,並且提供資料完整性和流程的控制,用來從資料存取模組330獲得新的結果集,並且回覆給前端模組310,讓前端模組310能夠更新GUI中結果列表(例如列表530或570)的內容。
資料存取模組330從後端服務模組320取得參數,依據參數產生模糊搜索的SQL指令,並且將SQL指令傳送到資料庫模組350,進行模糊搜索。為了達成高效通用型資料庫搜索的目的,資料存取模組330產生的需要服從以下規則:
不能夠使用關聯式資料庫的供應商自訂的進階功能,也就是說,只能用標準的SQL語法產生SQL指令;以及
不使用SQL語法中的JOIN運算。
換句話說,資料存取模組330可規定只能使用SELECT、FROM、WHERE、EXISTS、NOT EXISTS、AND、OR、ORDER BY、ASC、DESC等通用SQL語法。
圖6係依據本發明實施例的模糊搜索方法的流程圖,由應用程式伺服器110的處理單元210在載入並執行資料存取模組330的程式碼時實施。詳細步驟說明如下:
步驟S610:從後端服務模組320取得參數,包含搜索字串、搜索行動類別、排序欄位、列表中目前顯示的最後或最先一筆記錄的一個或多個欄位的值。
步驟S630:判斷搜索行動類別為首次搜索、再次向下搜索和再次向上搜索中的何者。當首次搜索時,流程繼續進行步驟S652的處理。當再次向下搜索時,流程繼續進行步驟S654的處理。當再次向上搜索時,流程繼續進行步驟S656的處理。
步驟S652:產生首次搜索的SQL指令。首次搜索的SQL指令的標準句型樣版如下所示:
SELECT * FROM Table WHERE
Keyword LIKE str1 [OR Keyword LIKE str2 … OR Keyword LIKE strn]
[AND EXISTS (sql clause)]
ORDER BY sort_f1 ASC/DESC [, sort_f2 ASC/DESC, … sort_fn ASC/DESC];
其中,中括弧內的語句為可選的,可依據應用系統的需要添加。Table指出特定的資料表,str1、str2至strn指出搜索字串,keyword指出關鍵字欄位,並sort_f1、sort_f2至sort_fn指出結果集的排序欄位。
舉例來說,假設資料庫的表結構如圖4所示,搜索字串為“京都"、“旅遊",行動類型為首次搜索,排序欄位為SalesQuantity,排序方法為降冪排列,因此,產生的SQL指令如下:
SELECT * FROM Book WHERE
Keyword LIKE ‘京都’ OR Keyword LIKE ‘旅遊’
ORDER BY SalesQuantity DESC;
以上SQL指令讓資料庫模組350從書籍資料表410中搜索出其關鍵字419具有“京都"或“旅遊"字串的所有記錄,並且依據銷售量由高至低排序。
步驟S654:產生再次向下搜索的SQL指令。如果搜索集只依據一個欄位排序,再次向下搜索的SQL指令的標準句型樣版如下所示:
SELECT * FROM Table WHERE
Keyword LIKE str1 [OR Keyword LIKE str2 … OR Keyword LIKE strn]
AND sort_f1>v1
[AND EXISTS (sql clause)]
ORDER BY sort_f1 ASC;
如果搜索集依據兩個欄位排序,再次向下搜索的SQL指令的標準句型樣版如下所示:
SELECT * FROM Table WHERE
Keyword LIKE str1 [OR Keyword LIKE str2 … OR Keyword LIKE strn]
AND sort_f1>v1 OR (sort_f1=v1 AND sort_f2>v2)
[AND EXISTS (sql clause)]
ORDER BY sort_f1 ASC, sort_f2 ASC;
如果搜索集依據三個欄位排序,再次向下搜索的SQL指令的標準句型樣版如下所示:
SELECT * FROM Table WHERE
Keyword LIKE str1 [OR Keyword LIKE str2 … OR Keyword LIKE strn]
AND sort_f1>v1 OR (sort_f1=v1 AND sort_f2>v2) OR (sort_f1=v1 AND sort_f2=v2 AND sort_f3>v3)
[AND EXISTS (sql clause)]
ORDER BY sort_f1 ASC, sort_f2 ASC, sort_f3 ASC;
當系統需要更多欄位進行排序時,再次向下搜索的SQL指令的標準句型樣版可依此類推,為求簡明不再贅述。其中,中括弧內的語句為可選的,可依據應用系統的需要添加。Table指出特定的資料表,str1、str2至strn指出搜索字串,keyword指出關鍵字欄位,sort_f1指出結果集的第一排序欄位,sort_f2指出結果集的第二排序欄位,sort_f3指出結果集的第三排序欄位,v1指出列表中目前顯示的最後一筆記錄的sort_f1欄位的值,v2指出列表中目前顯示的最後一筆記錄的sort_f2欄位的值,並v3指出列表中目前顯示的最後一筆記錄的sort_f3欄位的值。
舉例來說,假設資料庫的表結構如圖4所示,搜索字串為“京都"、“旅遊",行動類型為再次向下搜索,排序欄位為BookID,列表530或570中最後一筆記錄的BookID的值是5,排序方法為升冪排列,因此,產生的SQL指令如下:
SELECT * FROM Book WHERE
Keyword LIKE ‘京都’ OR Keyword LIKE ‘旅遊’
AND BookID>5
ORDER BY BookID ASC;
以上SQL指令讓資料庫模組350從書籍資料表410中搜索出其關鍵字419具有“京都"或“旅遊"字串且其書籍識別碼大於5的所有記錄,並且依據書籍識別碼由低至高排序。
步驟S656:產生再次向上搜索的SQL指令。如果搜索集只依據一個欄位排序,再次向上搜索的SQL指令的標準句型樣版如下所示:
SELECT * FROM Table WHERE
Keyword LIKE str1 [OR Keyword LIKE str2 … OR Keyword LIKE strn]
AND sort_f1>v1
[AND EXISTS (sql clause)]
ORDER BY sort_f1 DESC;
如果搜索集依據兩個欄位排序,再次向上搜索的SQL指令的標準句型樣版如下所示:
SELECT * FROM Table WHERE
Keyword LIKE str1 [OR Keyword LIKE str2 … OR Keyword LIKE strn]
AND sort_f1>v1 OR (sort_f1=v1 AND sort_f2>v2)
[AND EXISTS (sql clause)]
ORDER BY sort_f1 DESC, sort_f2 DESC;
如果搜索集依據三個欄位排序,再次向下搜索的SQL指令的標準句型樣版如下所示:
SELECT * FROM Table WHERE
Keyword LIKE str1 [OR Keyword LIKE str2 … OR Keyword LIKE strn]
AND sort_f1>v1 OR (sort_f1=v1 AND sort_f2>v2) OR (sort_f1=v1 AND sort_f2=v2 AND sort_f3>v3)
[AND EXISTS (sql clause)]
ORDER BY sort_f1 DESC, sort_f2 DESC, sort_f3 DESC;
當系統需要更多欄位進行排序時,再次向上搜索的SQL指令的標準句型樣版可依此類推,為求簡明不再贅述。其中,中括弧內的語句為可選的,可依據應用系統的需要添加。Table指出特定的資料表,str1、str2至strn指出搜索字串,keyword指出關鍵字欄位,sort_f1指出結果集的第一排序欄位,sort_f2指出結果集的第二排序欄位,sort_f3指出結果集的第三排序欄位,v1指出列表中目前顯示的最後一筆記錄的sort_f1欄位的值,v2指出列表中目前顯示的最後一筆記錄的sort_f2欄位的值,並v3指出列表中目前顯示的最後一筆記錄的sort_f3欄位的值。
舉例來說,假設資料庫的表結構如圖4所示,搜索字串為“京都"、“旅遊",行動類型為再次向下搜索,排序欄位為BookID,列表530或570中最後一筆記錄的BookID的值是105,排序方法為降冪排列,因此,產生的SQL指令如下:
SELECT * FROM Book WHERE
Keyword LIKE ‘京都’ OR Keyword LIKE ‘旅遊’
AND BookID>105
ORDER BY BookID DESC;
以上SQL指令讓資料庫模組350從書籍資料表410中搜索出其關鍵字419具有“京都"或“旅遊"字串且其書籍識別碼小於105的所有記錄,並且依據書籍識別碼由高至低排序。
需要注意的是,不管是再次向上搜索還是再次向下搜索,其生成出的SQL指令都必須相適應於首次搜索生成的SQL指令。例如,二者之間的排序欄位、排序欄位的先後順序和每個排序欄位的排序方式(例如,升冪或降冪排序)必須一致等等。此外,只依據一個欄位排序的情況下,其樣版的sort_f1欄位必須服從鍵值(Key)的規範,唯一識別一筆記錄。依據兩個欄位排序的情況下,其樣版的sort_f2欄位必須服從鍵值的規範,唯一識別一筆記錄。依據三個欄位排序的情況下,其樣版的sort_f3欄位必須服從鍵值的規範,唯一識別一筆記錄。否則,搜索結果可能會不相匹配目前列表530或570的顯示結果。
步驟S670:傳送SQL指令到資料庫模組350以取得結果集。
步驟S690:回覆結果集給後端服務模組320,使得GUI 500-1或500-2可根據此結果集顯示或更新列表530或570中的內容。
本發明所述的方法中的全部或部分步驟可以電腦程式實現,例如電腦的作業系統、電腦中特定硬體的驅動程式、或軟體應用程式。此外,也可實現於如上所示的其他類型程式。所屬技術領域具有通常知識者可將本發明實施例的方法撰寫成電腦程式,為求簡潔不再加以描述。依據本發明實施例方法實施的電腦程式,可儲存於適當的電腦可讀取資料載具,例如DVD、CD-ROM、USB碟、硬碟,亦可置於可通過網路(例如,網際網路,或其他適當載具)存取的網路伺服器。
雖然圖2中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然圖6的步驟採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
100:網路
110:應用程式伺服器
151:桌上型電腦
153:平板電腦
155:手機
210:處理單元
220:顯示單元
230:輸入裝置
240:儲存裝置
250:記憶體
260:通訊介面
300:通用型資料庫模糊搜索系統
310:前端模組
320:後端服務模組
330:資料存取模組
350:資料庫模組
400:資料庫
410:書籍資料表
420:分類資料表
411:書籍名稱欄位
413:描述欄位
415:作者欄位
417:出版者欄位
419:關鍵字欄位
500-1,500-2:GUI
510,550:輸入框
520,560:搜索按鈕
530,570:列表
540,590:下頁按鈕
580:上頁按鈕
S610~S690:方法步驟
圖1係依據本發明實施例的網路系統架構圖。
圖2係依據本發明實施例的運算裝置的系統架構圖。
圖3係依據本發明實施例的通用型資料庫模糊搜索系統的架構圖。
圖4係依據本發明實施例的表結構的示意圖。
圖5A和圖5B係依據本發明實施的圖形使用者介面示意圖。
圖6係依據本發明實施例的模糊搜索方法的流程圖。
S610~S690:方法步驟
Claims (10)
- 一種通用型資料庫模糊搜索的電腦程式產品,包含能夠被一應用程式伺服器的一處理單元載入並執行的程式碼:取得一搜索字串、一第一搜索行動類別,上述第一搜索行動類別為首次搜索的資訊;依據上述搜索字串產生一第一標準查詢語言指令;以及傳送上述第一標準查詢語言指令到一資料庫模組,用於從一關聯式資料庫的一資料表中搜索出一關鍵字欄位中具有上述搜索字串的所有記錄並取得一第一結果集,使得一圖形使用介面依據上述第一結果集顯示一列表的內容,其中,上述資料表中的每一筆記錄的上述關鍵字欄位的值蒐集上述資料表中的同一筆記錄的多個其他欄位的值。
- 如請求項1所述的通用型資料庫模糊搜索的電腦程式產品,包含程式碼:當新增一筆記錄到上述資料表或更新上述資料表的一筆記錄後,更新上述異動的記錄的上述關鍵字欄位的值來蒐集上述資料表中的同一筆記錄的上述可搜索欄位的值。
- 如請求項1中所述的通用型資料庫模糊搜索的電腦程式產品,包含程式碼:上述圖形使用介面依據上述第一結果集的內容顯示上述列表的內容後,取得上述搜索字串、一第二搜索行動類別,指出再次向下搜索或再次向上搜索的資訊、一最後或最先顯示資訊,指出上述列表中目前顯示的最後或最先一筆記錄中的一欄位的值; 依據上述搜索字串、上述搜索行動類別和上述最後或最先顯示資訊產生一第二標準查詢語言指令;以及傳送上述第二標準查詢語言指令到上述資料庫模組,用於從上述關聯式資料庫的上述資料表中搜索出上述關鍵字欄位中具有上述搜索字串,以及在上述最後或最先顯示資訊之後或之前的所有記錄並取得一第二結果集,使得上述圖形使用介面依據上述結果集的內容顯示上述列表的內容。
- 如請求項3所述的通用型資料庫模糊搜索的電腦程式產品,其中,上述第一標準查詢語言指令和上述第二標準查詢語言指令中的一或多個排序欄位、上述排序欄位的先後順序和每個上述排序欄位的排序方式都一致。
- 如請求項4所述的通用型資料庫模糊搜索的電腦程式產品,其中,最後一個上述排序欄位,用來唯一識別一筆記錄。
- 如請求項3所述的通用型資料庫模糊搜索的電腦程式產品,包含程式碼:取得一搜索行動類別;判斷上述搜索行動類別為上述第一搜索行動類別或上述第二搜索行動類別;當上述第一搜索行動類別時,依據上述搜索字串產生上述第一標準查詢語言指令;以及當上述第二搜索行動類別時,依據上述搜索字串產生上述第二標準查詢語言指令。
- 如請求項3所述的通用型資料庫模糊搜索的電腦程式產品,其中,上述第一標準查詢語言指令和上述第二標準查詢語言指令不包含標準查詢語言語法中的JOIN運算,以及上述第一標準查詢語言指令和上述第二標準查詢語言指令不使用上述關聯式資料庫的供應商自訂的進階功能。
- 一種通用型資料庫模糊搜索的裝置,包含:一儲存裝置,儲存一關聯式資料庫;以及一處理單元,耦接上述儲存裝置,取得一搜索字串、一第一搜索行動類別,上述第一搜索行動類別為首次搜索的資訊;依據上述搜索字串產生一第一標準查詢語言指令;以及傳送上述第一標準查詢語言指令到一資料庫模組,用於從上述關聯式資料庫的一資料表中搜索出一關鍵字欄位中具有上述搜索字串的所有記錄並取得一第一結果集,使得一圖形使用介面依據上述第一結果集顯示一列表的內容,其中,上述資料表中的每一筆記錄的上述關鍵字欄位的值蒐集上述資料表中的同一筆記錄的多個其他欄位的值。
- 如請求項8所述的通用型資料庫模糊搜索的裝置,其中,當上述處理單元新增一筆記錄到上述資料表或更新上述資料表的一筆記錄後,更新上述異動的記錄的上述關鍵字欄位的值來蒐集上述資料表中的同一筆記錄的上述可搜索欄位的值。
- 如請求項8所述的通用型資料庫模糊搜索的裝置,其中,上述圖形使用介面依據上述第一結果集的內容顯示上述列表的內容後,上述處理單元取得上述搜索字串、一第二搜索行動類別,指出再次向下搜索或再次向上搜索的資訊、一最後或最先顯示資訊,指出上述 列表中目前顯示的最後或最先一筆記錄中的一欄位的值;依據上述搜索字串、上述搜索行動類別和上述最後或最先顯示資訊產生一第二標準查詢語言指令;以及傳送上述第二標準查詢語言指令到上述資料庫模組,用於從上述關聯式資料庫的上述資料表中搜索出上述關鍵字欄位中具有上述搜索字串,以及在上述最後或最先顯示資訊之後或之前的所有記錄並取得一第二結果集,使得上述圖形使用介面依據上述結果集的內容顯示上述列表的內容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109108846A TWI742568B (zh) | 2020-03-17 | 2020-03-17 | 通用型資料庫模糊搜索的電腦程式產品及裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109108846A TWI742568B (zh) | 2020-03-17 | 2020-03-17 | 通用型資料庫模糊搜索的電腦程式產品及裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202136994A TW202136994A (zh) | 2021-10-01 |
TWI742568B true TWI742568B (zh) | 2021-10-11 |
Family
ID=79601295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109108846A TWI742568B (zh) | 2020-03-17 | 2020-03-17 | 通用型資料庫模糊搜索的電腦程式產品及裝置 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI742568B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW498227B (en) * | 2001-02-05 | 2002-08-11 | Syscom Comp Engineering Co | Search system and method of embedded structure query language |
TW200512602A (en) * | 2003-09-19 | 2005-04-01 | Hon Hai Prec Ind Co Ltd | Method and system of fuzzy searching |
TW201003423A (en) * | 2008-07-02 | 2010-01-16 | Inst Information Industry | Apparatus, method, and computer program product for generating an annotation file according to a learning object |
TWI326848B (zh) * | 2006-09-06 | 2010-07-01 | Univ Ishou | |
TW201319982A (zh) * | 2011-11-11 | 2013-05-16 | Alibaba Group Holding Ltd | 產品資訊的即時去重複方法和裝置 |
TW201416893A (zh) * | 2012-10-22 | 2014-05-01 | Mitsubishi Electric Corp | 資料操作指令產生裝置、資料操作指令產生系統、資料操作指令產生方法以及儲存資料操作指令產生程式的儲存媒體 |
TWI509433B (zh) * | 2009-05-13 | 2015-11-21 | Esobi Inc | Filter the collection of files |
TWI567673B (zh) * | 2012-10-29 | 2017-01-21 | Alibaba Group Services Ltd | Sorting methods and devices for search results |
TWI607325B (zh) * | 2016-07-21 | 2017-12-01 | 虹光精密工業股份有限公司 | 檢索索引產生方法及應用此方法之伺服器 |
TWI610186B (zh) * | 2012-12-31 | 2018-01-01 | 威盛電子股份有限公司 | 特性資料庫、回報答案的方法、自然語言對話方法及其系統 |
-
2020
- 2020-03-17 TW TW109108846A patent/TWI742568B/zh active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW498227B (en) * | 2001-02-05 | 2002-08-11 | Syscom Comp Engineering Co | Search system and method of embedded structure query language |
TW200512602A (en) * | 2003-09-19 | 2005-04-01 | Hon Hai Prec Ind Co Ltd | Method and system of fuzzy searching |
TWI326848B (zh) * | 2006-09-06 | 2010-07-01 | Univ Ishou | |
TW201003423A (en) * | 2008-07-02 | 2010-01-16 | Inst Information Industry | Apparatus, method, and computer program product for generating an annotation file according to a learning object |
TWI509433B (zh) * | 2009-05-13 | 2015-11-21 | Esobi Inc | Filter the collection of files |
TW201319982A (zh) * | 2011-11-11 | 2013-05-16 | Alibaba Group Holding Ltd | 產品資訊的即時去重複方法和裝置 |
TW201416893A (zh) * | 2012-10-22 | 2014-05-01 | Mitsubishi Electric Corp | 資料操作指令產生裝置、資料操作指令產生系統、資料操作指令產生方法以及儲存資料操作指令產生程式的儲存媒體 |
TWI567673B (zh) * | 2012-10-29 | 2017-01-21 | Alibaba Group Services Ltd | Sorting methods and devices for search results |
TWI610186B (zh) * | 2012-12-31 | 2018-01-01 | 威盛電子股份有限公司 | 特性資料庫、回報答案的方法、自然語言對話方法及其系統 |
TWI607325B (zh) * | 2016-07-21 | 2017-12-01 | 虹光精密工業股份有限公司 | 檢索索引產生方法及應用此方法之伺服器 |
Also Published As
Publication number | Publication date |
---|---|
TW202136994A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7933906B2 (en) | Method and system for assessing relevant properties of work contexts for use by information services | |
US10108720B2 (en) | Automatically providing relevant search results based on user behavior | |
US7895595B2 (en) | Automatic method and system for formulating and transforming representations of context used by information services | |
JP5744873B2 (ja) | トラステッドクエリのシステムおよび方法 | |
US20160085761A1 (en) | Uniform search, navigation and combination of heterogeneous data | |
US20140059038A1 (en) | Filtering structured data using inexact, culture-dependent terms | |
US20020073079A1 (en) | Method and apparatus for searching a database and providing relevance feedback | |
US20030004941A1 (en) | Method, terminal and computer program for keyword searching | |
US20110270876A1 (en) | Method and system for filtering information | |
US20040230570A1 (en) | Search processing method and apparatus | |
JP6808851B2 (ja) | トピック構造化方法、検索結果提供方法、コンピュータプログラムおよびトピック構造化システム | |
US20210406268A1 (en) | Search result annotations | |
US11868343B2 (en) | Utilizing autocompletion as a data discovery scaffold for supporting visual analysis | |
TWI742568B (zh) | 通用型資料庫模糊搜索的電腦程式產品及裝置 | |
US11698933B1 (en) | Using dynamic entity search during entry of natural language commands for visual data analysis | |
JP5104329B2 (ja) | ドキュメント検索システム | |
TWM597442U (zh) | 通用型資料庫模糊搜索的電腦程式產品及裝置 | |
US20080228725A1 (en) | Problem/function-oriented searching method for a patent database system | |
JP2012212212A (ja) | データ検索装置及びデータ検索方法及びプログラム | |
US11494061B1 (en) | Using a natural language interface to generate dashboards corresponding to selected data sources | |
WO2024019969A1 (en) | Searching against attribute values of documents that are explicitly specified as part of the process of publishing the documents | |
CN118382863A (zh) | 对非文档项目的辅助搜索 | |
JP2007018221A (ja) | Guiによるsql文作成ソフトウエア |