向用戶顯示用于在不同的數(shù)據(jù)320和324之間切換的正確語法。當用戶將CALIFORNIA或2013從搜索項152移除時,搜索引擎可以自動地不核查CALIFORNIA過濾器和/或2013過濾器。
[0176]狀態(tài)機300在不同的狀態(tài)302處生成查詢生成指令(QGI)。例如,狀態(tài)302B可以響應于在搜索項中檢測到REVENUE而生成第一QGI指令312A,諸如,INSTRUCT1N 1:ADD COLUMNFOR GROWTH(REVENUE)。指令312A指定含有收入數(shù)據(jù)的列,且包括一個指引數(shù)據(jù)庫來計算收入數(shù)據(jù)的增長的修改器。
[0177]狀態(tài)302B響應于在搜索項中接收一個日期而生成指令312B,諸如,INSTRUCT1N2:USE COLUMN FOR GROWTH D頂ENS1N(DATE)。指令2指引數(shù)據(jù)庫沿著日期維度比較收入列的增長。
[0178]狀態(tài)302F響應于在搜索項中接收值0&1丨仏^1丨&而生成指令312(:,諸如,INSTRUCT1N 3:ADD FILTER(COLUMN =STATE,OPERATOR = “=”,VALUE = CALIFORNIA)。指令312C將一個過濾器添加到提取州列中的值California的收入數(shù)據(jù)的列。
[0179]如上文所解釋的,將指令312從圖1中的搜索引擎104發(fā)送到BI服務器108Al服務器108使用指令312生成訪問圖1中的數(shù)據(jù)庫系統(tǒng)106中的識別的數(shù)據(jù)的SQL類型指令。通過數(shù)據(jù)庫系統(tǒng)106生成的數(shù)據(jù)被顯示在用戶界面102中。
[0180]如上文所示出的,狀態(tài)機300可以將一個搜索項分解成不同的短語。例如,狀態(tài)機300將搜索項GROWTH OF REVENUE FOR DATE STATE = CALIFORNIA分解成第一短語GROWTHOF REVENUE FOR DATE和第二短語STATE = CALIFORNIA。這允許狀態(tài)機300做出關于該搜索項的不同的注釋和假設。
[0181]搜索項被相對限制在狀態(tài)302A-302C中但是在到達狀態(tài)302D之后可以在多個方向上擴展。狀態(tài)機300可以基于不同的短語定制出錯消息和預測令牌。例如,在狀態(tài)302C中,狀態(tài)機300可以生成一個指引用戶使用RE VENUE令牌的消息。在狀態(tài)302D中,狀態(tài)機300可以生成對于多種可能的令牌類型更一般的消息。
[0182]狀態(tài)機300預測用戶的意圖且獲得用于預測的輸入的數(shù)據(jù)。例如,用戶可以錄入搜索項RE VENUE。因為RE VENUE是一個度量,所以狀態(tài)機300可以預測用戶想要加在一起的測量值。狀態(tài)機300還可以假設因為RE VENUE是一個度量,所以用戶可能希望查看其他相關的屬性和度量,諸如,州的收入、城市、稅收等。因此,狀態(tài)機300可以建議STATE(屬性),和/或為特定的州顯示收入數(shù)據(jù),諸如CALIFORNIA(值)。
[0183]狀態(tài)機300還可以基于關鍵字預測用戶的意圖。例如,用戶可以在一個關鍵字(諸如,F(xiàn)OR)之后錄入度量REVENUE。狀態(tài)機300可以預測用戶正在搜索特定地理區(qū)域或時間周期的收入數(shù)據(jù),且顯示數(shù)據(jù)庫中相關聯(lián)的列,諸如,城市、州、時間周期等。這允許用戶探查結構化數(shù)據(jù)庫內的數(shù)據(jù)而不必手動地生成SQL指令。
[0184]搜索引擎可以具有包括但不限制于確定性有限自動機狀態(tài)機和非確定性有限自動機狀態(tài)機的狀態(tài)機層級。搜索引擎還可以使用自然語言處理器(NLP)來分析搜索項,解釋搜索結果,顯示出錯以及為正確地錄入的搜索項做出建議。
[0185]搜索引擎還可以執(zhí)行非結構化文本搜索。例如,除了企業(yè)數(shù)據(jù)庫112中的結構化數(shù)據(jù)之外,企業(yè)還可以包括非結構化數(shù)據(jù),諸如,雇員注意事項。搜索引擎可以通過用于包括關鍵字GR0WTH、RE VENUE和/或CALIFORNIA的任何其他非結構化數(shù)據(jù)的搜索項執(zhí)行關鍵字搜索。
[0186]麵
[0187]圖13描繪搜索引擎可以如何使非結構化用戶輸入與關系數(shù)據(jù)庫系統(tǒng)中的列相關聯(lián)的一個實施例。檢索系統(tǒng)可以基于從企業(yè)關系數(shù)據(jù)庫上載的數(shù)據(jù)庫表格或基于從企業(yè)數(shù)據(jù)庫上載的任何其他結構化或非結構化數(shù)據(jù)而生成不同的索引。例如,檢索系統(tǒng)可以生成一個識別列180中含有的州的名稱的索引。
[0188]檢索系統(tǒng)可以響應于用戶將字母C錄入到搜索字段內來識別列402中的三個不同的州名稱California、Colorado以及Connecticut。檢索系統(tǒng)不僅使字母C與列402中的三個州名稱相關聯(lián),而且可以經由州識別符5、6和7使用戶輸入C與收入列404相關聯(lián)。因此,從用戶輸入C,搜索引擎還可以預料或預測用戶正在搜索Ca Iifo rnia、Colorado或者Connecti cut的收入數(shù)據(jù)。
[0189]在用戶錄入第二個字母A之后,索引400移動到第二邏輯狀態(tài)內。檢索系統(tǒng)現(xiàn)在可以預料/預測用戶正在搜索與California相關的數(shù)據(jù)。響應于檢測到第二索引邏輯狀態(tài),檢索系統(tǒng)可以細化在用戶界面中顯示的數(shù)據(jù)。例如,檢索系統(tǒng)可以顯示California的總收入$139993。檢索系統(tǒng)還可以顯示與California相關聯(lián)的其他數(shù)據(jù)。例如,檢索系統(tǒng)可以識別數(shù)據(jù)庫系統(tǒng)中含有州識別符5的其他列,且顯示與所識別的列相關聯(lián)的令牌和/或數(shù)據(jù)。
[0190]圖14描繪從圖1中的數(shù)據(jù)庫系統(tǒng)106中的列生成的另一個示例索引500??梢詮臄?shù)據(jù)庫系統(tǒng)106生成數(shù)百個索引500且用于企業(yè)的不同的用戶和不同部門。在每個索引500中可以存在大量令牌504。用戶可以將一個搜索項的第一個字符錄入到搜索字段內。搜索引擎可以基于該第一字符識別數(shù)百萬個潛在的令牌504。
[0191]搜索引擎對令牌504排名且使用該排名預測用戶意在將哪些令牌504錄入到搜索字段內。搜索引擎可以基于一些因素的任何組合為每個令牌504指派一個得分506。例如,得分506可以是基于用戶選擇一個特定的令牌504的次數(shù)。得分506還可以是基于與令牌504相關聯(lián)的列、行、度量、屬性、值等的數(shù)目或類型。
[0192]搜索引擎還可以基于哪種類型的令牌最可能跟隨當前錄入的搜索項來對令牌504排名。例如,當前的搜索項可以包括一個度量令牌。在該搜索項中使用的下一個令牌更可能是屬性類型的令牌。因此,可以使屬性令牌的排名高于度量令牌或值令牌。
[0193]搜索引擎可以基于由用戶錄入的搜索項識別根狀態(tài)502A。例如,用戶可以錄入搜索項STATES。搜索引擎可以識別根狀態(tài)502A,且基于相關聯(lián)的得分506顯示索引500內的不同的令牌504。
[0194]例如,Alabama令牌504A可以具有12的得分506A,Alask令牌504B可以具有25的得分506B,Arizona令牌504C可以具有75的得分506C,California令牌504D可以具有100的得分506D,Connecticut令牌504E可以具有8的得分506E,且Colorado令牌504F可以具有55的得分506F?;诘梅?06,搜索引擎可以首先顯示Cal ifornia令牌504D,其次顯示Arizona令牌504C,第三顯示Colorado令牌504F等。
[0195]在根狀態(tài)502A中,用戶可以錄入一個字符,諸如,字母C。搜索引擎沿著根狀態(tài)502A的右分支向下解析以識別令牌504D、504E以及504F,以及分別識別相關聯(lián)的令牌得分506D、506E和506F。搜索引擎分別基于相關聯(lián)的得分506D、506E和506F對令牌504D、504E以及504F排名,且然后以排名順序CALIF0RNIA、C0L0RAD0、⑶NNECTICUT顯示所述令牌中的一個或多個。
[0196]如上文所提及的,數(shù)百個、數(shù)千個或數(shù)百萬個令牌504可以與一個特定的索引500相關聯(lián)。為了減少處理帶寬,可以使令牌得分506沿著索引500向上傳播。搜索引擎然后僅需要沿著與排名最高的令牌504相關聯(lián)的分支向下傳播。
[0197]搜索引擎可以識別每個單獨的分支中的排名最高的令牌。例如,在根狀態(tài)502A的右分支中,California令牌506D具有100的最高得分。根狀態(tài)502A的右分支被指派得分100,且狀態(tài)502D的左分支也被指派得分100。在狀態(tài)502D的右分支中,Colorado令牌504F具有最高的得分且被指派Colorado令牌得分55。在根狀態(tài)502A的左分支中,Arizona令牌504C具有最高的令牌得分506C。根狀態(tài)502A的左分支因此被指派Arizona令牌得分75。
[0198]搜索引擎可以迅速地確定排名最高的令牌504。例如,當在根狀態(tài)502A中時,搜索引擎可能希望顯示兩個排名最高的令牌504。如上文所描述的,搜索引擎通常將需要沿著索弓丨500中的每個個體分支向下解析,以識別所有可能的令牌504以及相關聯(lián)的令牌得分506,且然后顯示具有最高得分506的兩個令牌。
[0199]相反,搜索引擎首先將根狀態(tài)502A的右分支識別為含有最高的令牌得分。搜索引擎然后確定與狀態(tài)502D的右分支的令牌得分55相比,狀態(tài)502D的左分支具有更高的得分100。因為California令牌504D是狀態(tài)502D的左分支中唯一的令牌,所以搜索引擎顯示Cal ifornia令牌504D具有最高排名的令牌。
[0200]搜索引擎確定狀態(tài)502D的右分支的下一個最高的令牌得分是55,且先前確定根狀態(tài)502A的左分支的最高的令牌得分是75。搜索引擎然后沿著根狀態(tài)502A的左分支向下移動以尋找第二最高的令牌得分。狀態(tài)502B指示右分支含有第二最高的令牌得分。因此,搜索引擎不需要沿著狀態(tài)502B的左分支向下解析。Arizona令牌504C是狀態(tài)502B的右分支中唯一的令牌且因此作為第二最高排名的令牌顯示給用戶。
[0201 ]參考圖14和圖15,搜索引擎可以生成索引500的優(yōu)先級查詢520。在操作522A中,搜索引擎首先可以識別根狀態(tài)502A中的每個分支的得分。在此實施例中,僅兩個分支以及相關聯(lián)的分支得分100和75與根狀態(tài)502A相關聯(lián)。
[0202]在操作522B中,搜索引擎可以沿著具有最高得分的下一級分支向下解析且識別附加的分支或令牌得分。在此實施例中,狀態(tài)502D包括第一分支得分100和第二分支得分55。操作522B添加分支得分55作為索引500中的當前的第三最高分支得分。
[0203]在操作522C中,搜索引擎沿著索引500的具有最高分支得分的下一級分支向下解析。在此實施例中,搜索引擎沿著狀態(tài)502D的左分支向下移動。狀態(tài)502D的左分支不具有附加分支且終止在California令牌504D處。因此,搜索引擎將California令牌504D識別作為索引500的最高排名的令牌。
[0204]在操作522D中,優(yōu)先級隊列520保持具有分支得分75和55。在操作522E中搜索引擎沿著狀態(tài)502B中與下一個最高分支得分75相關聯(lián)的右分支向下移動。在此實施例中,狀態(tài)502B的右分支不具有附加分支且終止在Arizona令牌504C處。因此,在操作522F中搜索引擎將Arizona令牌504C識別為索引500的下一個最高排名的令牌。操作522繼續(xù)直到索引500中的所有令牌或某些特定數(shù)目的令牌已經被排名為止。
[0205]搜索引擎基于優(yōu)先級隊列520中的排名顯示令牌504。例如,用戶可以錄入一個使搜索引擎移動到根狀態(tài)502A內的搜索項。響應于移動到根狀態(tài)502A中,搜索引擎可以自動地顯示索引500中的三個排名最高的令牌?;趦?yōu)先級隊列520中的排名,搜索引擎顯示California令牌504、Arizona令牌504以及Colorado令牌504F。用戶然后可以將字母A添加到搜索項?;趦?yōu)先級隊列520,搜索引擎可以按以字母A開始的三個排名最高的令牌的順序顯不Ari zona令牌504、Alaska令牌504以及Alabama令牌504。
[0206]參考圖16,搜索引擎可以將安全位掩碼540指派給令牌504。安全位掩碼540可以包括與不同的用戶群相關聯(lián)的不同的位。例如,第一位可以與管理群相關聯(lián),第二位可以與人力資源群相關聯(lián),且第三位可以與銷售群相關聯(lián)。這些當然僅僅是實施例且任何數(shù)目的位可以與任何數(shù)目的不同群相關聯(lián)。
[0207]搜索引擎可以基于哪些用戶群被授權查看令牌和/或相關聯(lián)的數(shù)據(jù)來設定令牌安全位掩碼540。例如,搜索引擎將令牌位掩碼540A設定成僅管理群和銷售群可以查看Cal ifornia令牌504D和任何相關聯(lián)的數(shù)據(jù)。搜索引擎可以將令牌安全位掩碼540B設定成僅管理群可以查看Arizona令牌504C和任何相關聯(lián)的數(shù)據(jù)。
[0208]在另一個實施例中,安全位掩碼540中的不同的位可以與不同的地理區(qū)域相關聯(lián)。例如,不同的位可以與不同的城市、州、國家、銷售區(qū)域等相關聯(lián)。地理位可以限制某些用戶僅能查看特定區(qū)域的令牌和相關聯(lián)的數(shù)據(jù)。例如,可以僅防止被指派到O r e g ο η銷售區(qū)域的銷售員查看其他州的銷售數(shù)據(jù)。
[0209]圖17示出安全位映射可以如何確定向用戶顯示哪些令牌。可以基于令牌安全位映射540生成分支安全位映射542。例如,狀態(tài)502Ε的左分支和索引狀態(tài)502Ε的右分支每個均包括一個令牌。因此,左分支安全位映射542Ε和令牌安全位映射540F相同,且右分支安全位映射542F和令牌安全位映射540C相同。
[0210]下一個較高級分支安全位映射542D將較低級分支安全位映射542Ε和542F組合。例如,分支安全位映射542Ε和542F邏輯上一起進行或運算以導出較高級分支安全位映射542D。類似地,根級分支安全位映射542Β將分支安全位映射542C和542D組合。
[0211]用戶可以被指派用戶安全位映射544。例如,用戶可以使用登錄識別符和密碼進入信息檢索系統(tǒng)。登錄識別符可以與使該用戶與特定群和/或地理區(qū)域相關聯(lián)的用戶配置文件相關聯(lián)。在此實施例中,用戶可以屬于銷售群且搜索引擎設定用戶安全位映射544中的第三位。如果控制不同地理區(qū)域的授權,則搜索引擎可以設定用戶安全位映射544中與用戶具有銷售責任的銷售區(qū)域相關聯(lián)的位。
[0212]用戶可以向用戶界面內錄入搜索項546或錄入搜索項546的一個字符。在第一實施例中,用戶可以錄入搜索項546的字符C。搜索引擎沿著根狀態(tài)502Α的右分支向下解析。California令牌504Ε是索引500中最高排名的令牌,但是僅可以被管理群查看,這是因為分支安全位映射542C中僅設定了第一位。因為用戶僅屬于銷售群,所以搜索引擎不沿著狀態(tài)502D的左分支向下解析且不顯示California令牌504D。
[0213]銷售群被允許查看狀態(tài)502A的右分支中的特定令牌以及相關聯(lián)的數(shù)據(jù)。搜索引擎從分支安全位映射542E確定用戶被授權查看狀態(tài)502E的左分支中的令牌?;诜种О踩挥成?42E、令牌504E的令牌得分以及上文所描述的其他加權和排名,搜索引擎可以顯示Connecticut令牌504E和顯示與令牌504E相關聯(lián)的數(shù)據(jù),諸如,Connecticut州的銷售圖。
[0214]狀態(tài)502E的右分支僅可以被管理群中的用戶查看。因此,搜索引擎也不顯示Colorado令牌504F或者與Colorado令牌504F相關聯(lián)的任何數(shù)據(jù),即使Colorado令牌504F具有比Connec t i cut令牌504E高的令牌得分。
[0215]根狀態(tài)502A的左分支也可以僅被管理群中的用戶查看。當在根狀態(tài)502A中時用戶可以錄入字符A作為搜索項546?;诜种О踩挥成?42A,搜索引擎不顯示存在于根狀態(tài)502A的左分支中的任何令牌。
[0216]在另一個實施例中,用戶安全位映射544可以具有第一管理位設定且具有與Co 1rado州相關聯(lián)的另一個地理位設定。Co I orado令牌504F可以在令牌安全位映射540C中具有一個相關聯(lián)的地理位設定。搜索引擎可以響應于用戶錄入RE VENUE作為搜索項546而進入根狀態(tài)502A。因為用戶被特別授權查看與Colorado令牌504F相關聯(lián)的數(shù)據(jù),所以搜索引擎可以響應于用戶簡單地錄入搜索項REVENUE而自動地顯示Colorado的收入圖。換句話說,安全位映射中的匹配的地理區(qū)域可以產生Colorado令牌504F的最高排名。
[0217]在又一個實施例中,用戶安全位映射544可以包括與不同的收入水平相關聯(lián)的位。例如,用戶安全位映射544中的一個位可以使用戶能夠查看$100萬以上的財務交易。然而用戶可能不具有查看$100萬以上的交易的授權,且因此搜索引擎不設定用戶安全位映射544中的$100萬收入水平位。
[0218]用戶可以再次錄入REVENUE作為搜索項546。搜索引擎可以不訪問或顯示具有大于$100萬的收入值的列行。搜索引擎也可以不訪問或顯示與具有大于$100萬的值的行中的任何一個相關聯(lián)的名稱、令牌、屬性、度量、值等。例如,用戶可以錄入搜索項REVENUE NAME =。搜索引擎可以僅顯示與具有小于$100萬的值的列行相關聯(lián)的令牌。
[0219]參考圖18,搜索引擎可以接收以下三個搜索查詢。
[0220]查詢I,用戶I,部門I,搜索項=按州的收入。
[0221 ]查詢2,用戶2,部門I,搜索項=按訂單日期的稅收增長。
[0222]查詢3,用戶3,部門2,搜索項=按州的發(fā)貨優(yōu)先級延時。
[0223]信息檢索系統(tǒng)可以在構建全局索引550A時考慮全部三個查詢。例如,可以基于查詢1、查詢2以及查詢3中識別的令牌調整全局索引550A中的令牌得分。
[0224]信息檢索系統(tǒng)可以響應于接收查詢I而向與用戶I相關聯(lián)的第一用戶索引550C添加收入令牌和州令牌。如果收入令牌和/或州令牌已經存在于第一用戶索引550C中,則相關聯(lián)的令牌得分可以增加。
[0225]搜索引擎可以響應于查詢2而調整與用戶2相關聯(lián)的第二用戶索引550C,且響應于查詢3而調