基于元數(shù)據(jù)模型的檢索方法和基于元數(shù)據(jù)模型的檢索裝置的制造方法
【專利摘要】本發(fā)明提出了一種基于元數(shù)據(jù)模型的檢索方法和一種基于元數(shù)據(jù)模型的檢索裝置,其中,基于元數(shù)據(jù)模型的檢索方法包括:通過元數(shù)據(jù)模型將用戶文檔中的字段映射為索引字段;對(duì)所述索引字段進(jìn)行schema動(dòng)態(tài)匹配,得到查詢結(jié)果文檔;通過所述元數(shù)據(jù)模型將所述查詢結(jié)果文檔映射到所述用戶文檔的字段中。通過本發(fā)明的技術(shù)方案,在用戶文檔類型發(fā)生變更后,直接更新元數(shù)據(jù)模型即可,而不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度,使開發(fā)工作更加簡(jiǎn)單高效,實(shí)現(xiàn)了以較少的資源提供更穩(wěn)定的服務(wù)。
【專利說明】
基于元數(shù)據(jù)模型的檢索方法和基于元數(shù)據(jù)模型的檢索裝置
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體而言,涉及一種基于元數(shù)據(jù)模型的檢索方法和一種基于元數(shù)據(jù)模型的檢索裝置。
【背景技術(shù)】
[0002]目前,檢索的作用就是在用戶給定一個(gè)關(guān)鍵詞的前提下,檢索并給出用戶最想要的內(nèi)容。但是隨著云應(yīng)用技術(shù)的發(fā)展,部署在云端的應(yīng)用也越來越多,與此同時(shí),伴隨著用戶數(shù)量的增長(zhǎng),應(yīng)用的數(shù)據(jù)也越來越多,單純使用數(shù)據(jù)庫中的檢索功能,不僅效果不好,還會(huì)影響數(shù)據(jù)庫的其它功能的使用,為此,開發(fā)者一般使用獨(dú)立服務(wù)器單獨(dú)搭建搜索服務(wù)。
[0003]然而,在這種方案中,單個(gè)應(yīng)用的部署和維護(hù)成本又太高,開發(fā)需要的時(shí)間和精力太多,在云端環(huán)境中,如果各個(gè)應(yīng)用的開發(fā)者都使用自己的服務(wù),撇開部署集群要使用多臺(tái)服務(wù)器不說,在開發(fā)過程中,用戶需要保持應(yīng)用的信息與solr( —種獨(dú)立的企業(yè)級(jí)搜索應(yīng)用)的schema(可擴(kuò)展標(biāo)記語言架構(gòu))定義的字段保持一致,在應(yīng)用發(fā)生變化時(shí),需要同步修改集群中的schema相關(guān)信息,并重載加載修改過的配置,這個(gè)過程極為復(fù)雜,如果漏掉其中的某個(gè)步驟,就會(huì)導(dǎo)致更新索引和查詢失敗。
[0004]因此需要一種新的技術(shù)方案,可以減少搜索更新復(fù)雜度的同時(shí),使開發(fā)工作更加簡(jiǎn)單高效。
【發(fā)明內(nèi)容】
[0005]本發(fā)明正是基于上述問題,提出了一種新的技術(shù)方案,可以減少搜索更新復(fù)雜度的同時(shí),使開發(fā)工作更加簡(jiǎn)單高效。
[0006]有鑒于此,本發(fā)明的一方面提出了一種基于元數(shù)據(jù)模型的檢索方法,包括:通過元數(shù)據(jù)模型將用戶文檔中的字段映射為索引字段;對(duì)所述索引字段進(jìn)行schema動(dòng)態(tài)匹配,得到查詢結(jié)果文檔;通過所述元數(shù)據(jù)模型將所述查詢結(jié)果文檔映射到所述用戶文檔的字段中。
[0007]在該技術(shù)方案中,可以solr(—種獨(dú)立的企業(yè)級(jí)搜索應(yīng)用)服務(wù)前端添加一個(gè)元數(shù)據(jù)層,用來管理元數(shù)據(jù)模型,其接受并保存用戶定義的元數(shù)據(jù),同時(shí)可以通知使用元數(shù)據(jù)的元數(shù)據(jù)層去數(shù)據(jù)庫中加載最新的元數(shù)據(jù),由于元數(shù)據(jù)層是在索引集群之前,并且直接面向客戶提供搜索和索引服務(wù),故索引和搜索服務(wù)都會(huì)使用用戶定義的元數(shù)據(jù)來進(jìn)行驗(yàn)證。
[0008]這樣,通過元數(shù)據(jù)模型可以將用戶用于檢索的字段映射為索引字段,再對(duì)索引字段進(jìn)行schema(可擴(kuò)展標(biāo)記語言架構(gòu))動(dòng)態(tài)匹配,從而完成檢索,并且,可以將檢索得到的查詢結(jié)果文檔繼續(xù)經(jīng)由元數(shù)據(jù)模型映射到用戶文檔的字段,完成檢索步驟。通過該技術(shù)方案,在用戶文檔類型發(fā)生變更后,直接更新元數(shù)據(jù)模型即可,而不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度,使開發(fā)工作更加簡(jiǎn)單高效,實(shí)現(xiàn)了以較少的資源提供更穩(wěn)定的服務(wù)。
[0009]在上述技術(shù)方案中,優(yōu)選地,所述元數(shù)據(jù)模型為客戶端的應(yīng)用程序接口與索引服務(wù)器之間的元數(shù)據(jù)層,所述用戶文檔來自所述客戶端,所述schema動(dòng)態(tài)匹配的服務(wù)由所述索引服務(wù)器提供。
[0010]在該技術(shù)方案中,用戶文檔中具有客戶端的用戶用于檢索的字段,solr(—種獨(dú)立的企業(yè)級(jí)搜索應(yīng)用)服務(wù)前端添加有一個(gè)元數(shù)據(jù)層,用來管理元數(shù)據(jù)模型,其接受并保存用戶定義的元數(shù)據(jù),同時(shí)可以通知使用元數(shù)據(jù)的元數(shù)據(jù)層去數(shù)據(jù)庫中加載最新的元數(shù)據(jù),由于元數(shù)據(jù)層是在索引集群之前,并且直接面向客戶提供搜索和索引服務(wù),故索引和搜索服務(wù)都會(huì)使用用戶定義的元數(shù)據(jù)來進(jìn)行驗(yàn)證,從而在用戶文檔類型發(fā)生變更后,直接更新元數(shù)據(jù)模型即可,而不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度。
[0011]在上述任一技術(shù)方案中,優(yōu)選地,所述通過元數(shù)據(jù)模型將用戶文檔中的字段映射為索引字段,具體包括:根據(jù)所述元數(shù)據(jù)模型,確定所述用戶文檔所需的元數(shù)據(jù),并在預(yù)設(shè)元數(shù)據(jù)庫中為所述用戶文檔調(diào)用所述所需的元數(shù)據(jù),其中,所述用戶文檔所需的元數(shù)據(jù)為所述用戶文檔到所述索引服務(wù)器的索引文檔的映射關(guān)系。
[0012]在該技術(shù)方案中,可以根據(jù)元數(shù)據(jù)層中的用戶文檔所需的元數(shù)據(jù)進(jìn)行映射,使得用戶文檔中的字段可以映射為索引字段,從而進(jìn)一步通過索引字段進(jìn)行schema動(dòng)態(tài)匹配,從而完成檢索。
[0013]在上述任一技術(shù)方案中,優(yōu)選地,還包括:根據(jù)來自所述客戶端的注解,為所述元數(shù)據(jù)模型定義全量元數(shù)據(jù),并將定義的所述全量元數(shù)據(jù)同步更新至所述索引服務(wù)器;和/或根據(jù)來自所述客戶端或所述索引服務(wù)器的修改命令,修改所述元數(shù)據(jù)模型的元數(shù)據(jù)。
[0014]在該技術(shù)方案中,元數(shù)據(jù)的管理分為查詢與更新兩種,更新時(shí)又可分為全量更新和增量更新兩種,其中,全量更新即通過客戶端使用注解來定義全量元數(shù)據(jù),同時(shí)在索引服務(wù)器啟動(dòng)時(shí),將元數(shù)據(jù)更新到索引服務(wù)器,增量更新即根據(jù)來自客戶端的應(yīng)用程序接口或者服務(wù)端的網(wǎng)頁界面的修改命令修改元數(shù)據(jù)中的相關(guān)內(nèi)容。通過對(duì)元數(shù)據(jù)的更新,可不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度,使開發(fā)工作更加簡(jiǎn)單高效,實(shí)現(xiàn)了以較少的資源提供更穩(wěn)定的服務(wù)。
[0015]在上述任一技術(shù)方案中,優(yōu)選地,所述元數(shù)據(jù)模型包括文檔模型和字段模型,其中,所述文檔模型包括:文檔類型、文檔所屬域和文檔包含的字段屬性集合,所述字段模型包括:所述用戶文檔的字段名稱、索引類型和其他屬性,所述其他屬性包括:是否保存、是否索引、是否為拼音、是否為多值、是否為唯一和是否為只讀。
[0016]在該技術(shù)方案中,元數(shù)據(jù)是關(guān)于數(shù)據(jù)的描述性數(shù)據(jù)信息,用來定義用戶文檔到索引文檔的一個(gè)映射關(guān)系,它有文檔模型和字段模型兩種。其中,文檔模型包含了文檔類型、文檔所屬域和文檔包含的字段屬性集合。字段模型包含了用戶文檔的字段名稱、索引類型、是否保存、是否索引、是否拼音、是否多值、是否唯一和是否只讀。其中,索引類型指的是字段在建索引和查詢過程中使用的分詞器類型,是否只讀指的是限制某些字段寫屬性或者只能由后端服務(wù)來進(jìn)行相應(yīng)的更新。
[0017]本發(fā)明的另一方面提出了一種基于元數(shù)據(jù)模型的檢索裝置,包括:索引字段映射單元,通過元數(shù)據(jù)模型將用戶文檔中的字段映射為索引字段;動(dòng)態(tài)匹配單元,對(duì)所述索引字段進(jìn)行schema動(dòng)態(tài)匹配,得到查詢結(jié)果文檔;查詢結(jié)果映射單元,通過所述元數(shù)據(jù)模型將所述查詢結(jié)果文檔映射到所述用戶文檔的字段中。
[0018]在該技術(shù)方案中,可以solr(—種獨(dú)立的企業(yè)級(jí)搜索應(yīng)用)服務(wù)前端添加一個(gè)元數(shù)據(jù)層,用來管理元數(shù)據(jù)模型,其接受并保存用戶定義的元數(shù)據(jù),同時(shí)可以通知使用元數(shù)據(jù)的元數(shù)據(jù)層去數(shù)據(jù)庫中加載最新的元數(shù)據(jù),由于元數(shù)據(jù)層是在索引集群之前,并且直接面向客戶提供搜索和索引服務(wù),故索引和搜索服務(wù)都會(huì)使用用戶定義的元數(shù)據(jù)來進(jìn)行驗(yàn)證。
[0019]這樣,通過元數(shù)據(jù)模型可以將用戶用于檢索的字段映射為索引字段,再對(duì)索引字段進(jìn)行schema(可擴(kuò)展標(biāo)記語言架構(gòu))動(dòng)態(tài)匹配,從而完成檢索,并且,可以將檢索得到的查詢結(jié)果文檔繼續(xù)經(jīng)由元數(shù)據(jù)模型映射到用戶文檔的字段,完成檢索步驟。通過該技術(shù)方案,在用戶文檔類型發(fā)生變更后,直接更新元數(shù)據(jù)模型即可,而不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度,使開發(fā)工作更加簡(jiǎn)單高效,實(shí)現(xiàn)了以較少的資源提供更穩(wěn)定的服務(wù)。
[0020]在上述技術(shù)方案中,優(yōu)選地,所述元數(shù)據(jù)模型為客戶端的應(yīng)用程序接口與索引服務(wù)器之間的元數(shù)據(jù)層,所述用戶文檔來自所述客戶端,所述schema動(dòng)態(tài)匹配的服務(wù)由所述索引服務(wù)器提供。
[0021]在該技術(shù)方案中,用戶文檔中具有客戶端的用戶用于檢索的字段,solr(—種獨(dú)立的企業(yè)級(jí)搜索應(yīng)用)服務(wù)前端添加有一個(gè)元數(shù)據(jù)層,用來管理元數(shù)據(jù)模型,其接受并保存用戶定義的元數(shù)據(jù),同時(shí)可以通知使用元數(shù)據(jù)的元數(shù)據(jù)層去數(shù)據(jù)庫中加載最新的元數(shù)據(jù),由于元數(shù)據(jù)層是在索引集群之前,并且直接面向客戶提供搜索和索引服務(wù),故索引和搜索服務(wù)都會(huì)使用用戶定義的元數(shù)據(jù)來進(jìn)行驗(yàn)證,從而在用戶文檔類型發(fā)生變更后,直接更新元數(shù)據(jù)模型即可,而不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度。
[0022]在上述任一技術(shù)方案中,優(yōu)選地,所述索引字段映射單元具體用于:根據(jù)所述元數(shù)據(jù)模型,確定所述用戶文檔所需的元數(shù)據(jù),并在預(yù)設(shè)元數(shù)據(jù)庫中為所述用戶文檔調(diào)用所述所需的元數(shù)據(jù),其中,所述用戶文檔所需的元數(shù)據(jù)為所述用戶文檔到所述索引服務(wù)器的索引文檔的映射關(guān)系。
[0023]在該技術(shù)方案中,可以根據(jù)元數(shù)據(jù)層中的用戶文檔所需的元數(shù)據(jù)進(jìn)行映射,使得用戶文檔中的字段可以映射為索引字段,從而進(jìn)一步通過索引字段進(jìn)行schema動(dòng)態(tài)匹配,從而完成檢索。
[0024]在上述任一技術(shù)方案中,優(yōu)選地,還包括:全量更新單元,根據(jù)來自所述客戶端的注解,為所述元數(shù)據(jù)模型定義全量元數(shù)據(jù),并將定義的所述全量元數(shù)據(jù)同步更新至所述索弓丨服務(wù)器;和/或增量更新單元,根據(jù)來自所述客戶端或所述索引服務(wù)器的修改命令,修改所述元數(shù)據(jù)模型的元數(shù)據(jù)。
[0025]在該技術(shù)方案中,元數(shù)據(jù)的管理分為查詢與更新兩種,更新時(shí)又可分為全量更新和增量更新兩種,其中,全量更新即通過客戶端使用注解來定義全量元數(shù)據(jù),同時(shí)在索引服務(wù)器啟動(dòng)時(shí),將元數(shù)據(jù)更新到索引服務(wù)器,增量更新即根據(jù)來自客戶端的應(yīng)用程序接口或者服務(wù)端的網(wǎng)頁界面的修改命令修改元數(shù)據(jù)中的相關(guān)內(nèi)容。通過對(duì)元數(shù)據(jù)的更新,可不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度,使開發(fā)工作更加簡(jiǎn)單高效,實(shí)現(xiàn)了以較少的資源提供更穩(wěn)定的服務(wù)。
[0026]在上述任一技術(shù)方案中,優(yōu)選地,所述元數(shù)據(jù)模型包括文檔模型和字段模型,其中,所述文檔模型包括:文檔類型、文檔所屬域和文檔包含的字段屬性集合,所述字段模型包括:所述用戶文檔的字段名稱、索引類型和其他屬性,所述其他屬性包括:是否保存、是否索引、是否為拼音、是否為多值、是否為唯一和是否為只讀。
[0027]在該技術(shù)方案中,元數(shù)據(jù)是關(guān)于數(shù)據(jù)的描述性數(shù)據(jù)信息,用來定義用戶文檔到索引文檔的一個(gè)映射關(guān)系,它有文檔模型和字段模型兩種。其中,文檔模型包含了文檔類型、文檔所屬域和文檔包含的字段屬性集合。字段模型包含了用戶文檔的字段名稱、索引類型、是否保存、是否索引、是否拼音、是否多值、是否唯一和是否只讀。其中,索引類型指的是字段在建索引和查詢過程中使用的分詞器類型,是否只讀指的是限制某些字段寫屬性或者只能由后端服務(wù)來進(jìn)行相應(yīng)的更新。
[0028]通過以上技術(shù)方案,在用戶文檔類型發(fā)生變更后,直接更新元數(shù)據(jù)模型即可,而不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度,使開發(fā)工作更加簡(jiǎn)單高效,實(shí)現(xiàn)了以較少的資源提供更穩(wěn)定的服務(wù)。
【附圖說明】
[0029]圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的基于元數(shù)據(jù)模型的檢索方法的流程圖;
[0030]圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的基于元數(shù)據(jù)模型的檢索裝置的框圖;
[0031]圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的客戶端、元數(shù)據(jù)層與索引集群的交互示意圖。
【具體實(shí)施方式】
[0032]為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。需要說明的是,在不沖突的情況下,本申請(qǐng)的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0033]在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實(shí)施,因此,本發(fā)明的保護(hù)范圍并不受下面公開的具體實(shí)施例的限制。
[0034]圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的基于元數(shù)據(jù)模型的檢索方法的流程圖。
[0035]如圖1所示,根據(jù)本發(fā)明的一個(gè)實(shí)施例的基于元數(shù)據(jù)模型的檢索方法,包括:
[0036]步驟102,通過元數(shù)據(jù)模型將用戶文檔中的字段映射為索引字段;
[0037]步驟104,對(duì)所述索引字段進(jìn)行schema動(dòng)態(tài)匹配,得到查詢結(jié)果文檔;
[0038]步驟106,通過所述元數(shù)據(jù)模型將所述查詢結(jié)果文檔映射到所述用戶文檔的字段中。
[0039]在該技術(shù)方案中,可以solr(—種獨(dú)立的企業(yè)級(jí)搜索應(yīng)用)服務(wù)前端添加一個(gè)元數(shù)據(jù)層,用來管理元數(shù)據(jù)模型,其接受并保存用戶定義的元數(shù)據(jù),同時(shí)可以通知使用元數(shù)據(jù)的元數(shù)據(jù)層去數(shù)據(jù)庫中加載最新的元數(shù)據(jù),由于元數(shù)據(jù)層是在索引集群之前,并且直接面向客戶提供搜索和索引服務(wù),故索引和搜索服務(wù)都會(huì)使用用戶定義的元數(shù)據(jù)來進(jìn)行驗(yàn)證。
[0040]這樣,通過元數(shù)據(jù)模型可以將用戶用于檢索的字段映射為索引字段,再對(duì)索引字段進(jìn)行schema(可擴(kuò)展標(biāo)記語言架構(gòu))動(dòng)態(tài)匹配,從而完成檢索,并且,可以將檢索得到的查詢結(jié)果文檔繼續(xù)經(jīng)由元數(shù)據(jù)模型映射到用戶文檔的字段,完成檢索步驟。通過該技術(shù)方案,在用戶文檔類型發(fā)生變更后,直接更新元數(shù)據(jù)模型即可,而不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度,使開發(fā)工作更加簡(jiǎn)單高效,實(shí)現(xiàn)了以較少的資源提供更穩(wěn)定的服務(wù)。
[0041]在上述技術(shù)方案中,優(yōu)選地,所述元數(shù)據(jù)模型為客戶端的應(yīng)用程序接口與索引服務(wù)器之間的元數(shù)據(jù)層,所述用戶文檔來自所述客戶端,所述schema動(dòng)態(tài)匹配的服務(wù)由所述索引服務(wù)器提供。
[0042]在該技術(shù)方案中,用戶文檔中具有客戶端的用戶用于檢索的字段,solr(—種獨(dú)立的企業(yè)級(jí)搜索應(yīng)用)服務(wù)前端添加有一個(gè)元數(shù)據(jù)層,用來管理元數(shù)據(jù)模型,其接受并保存用戶定義的元數(shù)據(jù),同時(shí)可以通知使用元數(shù)據(jù)的元數(shù)據(jù)層去數(shù)據(jù)庫中加載最新的元數(shù)據(jù),由于元數(shù)據(jù)層是在索引集群之前,并且直接面向客戶提供搜索和索引服務(wù),故索引和搜索服務(wù)都會(huì)使用用戶定義的元數(shù)據(jù)來進(jìn)行驗(yàn)證,從而在用戶文檔類型發(fā)生變更后,直接更新元數(shù)據(jù)模型即可,而不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度。
[0043]在上述任一技術(shù)方案中,優(yōu)選地,步驟102具體包括:根據(jù)所述元數(shù)據(jù)模型,確定所述用戶文檔所需的元數(shù)據(jù),并在預(yù)設(shè)元數(shù)據(jù)庫中為所述用戶文檔調(diào)用所述所需的元數(shù)據(jù),其中,所述用戶文檔所需的元數(shù)據(jù)為所述用戶文檔到所述索引服務(wù)器的索引文檔的映射關(guān)系O
[0044]在該技術(shù)方案中,可以根據(jù)元數(shù)據(jù)層中的用戶文檔所需的元數(shù)據(jù)進(jìn)行映射,使得用戶文檔中的字段可以映射為索引字段,從而進(jìn)一步通過索引字段進(jìn)行schema動(dòng)態(tài)匹配,從而完成檢索。
[0045]在上述任一技術(shù)方案中,優(yōu)選地,還包括:根據(jù)來自所述客戶端的注解,為所述元數(shù)據(jù)模型定義全量元數(shù)據(jù),并將定義的所述全量元數(shù)據(jù)同步更新至所述索引服務(wù)器;和/或根據(jù)來自所述客戶端或所述索引服務(wù)器的修改命令,修改所述元數(shù)據(jù)模型的元數(shù)據(jù)。
[0046]在該技術(shù)方案中,元數(shù)據(jù)的管理分為查詢與更新兩種,更新時(shí)又可分為全量更新和增量更新兩種,其中,全量更新即通過客戶端使用注解來定義全量元數(shù)據(jù),同時(shí)在索引服務(wù)器啟動(dòng)時(shí),將元數(shù)據(jù)更新到索引服務(wù)器,增量更新即根據(jù)來自客戶端的應(yīng)用程序接口或者服務(wù)端的網(wǎng)頁界面的修改命令修改元數(shù)據(jù)中的相關(guān)內(nèi)容。通過對(duì)元數(shù)據(jù)的更新,可不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度,使開發(fā)工作更加簡(jiǎn)單高效,實(shí)現(xiàn)了以較少的資源提供更穩(wěn)定的服務(wù)。
[0047]在上述任一技術(shù)方案中,優(yōu)選地,所述元數(shù)據(jù)模型包括文檔模型和字段模型,其中,所述文檔模型包括:文檔類型、文檔所屬域和文檔包含的字段屬性集合,所述字段模型包括:所述用戶文檔的字段名稱、索引類型和其他屬性,所述其他屬性包括:是否保存、是否索引、是否為拼音、是否為多值、是否為唯一和是否為只讀。
[0048]在該技術(shù)方案中,元數(shù)據(jù)是關(guān)于數(shù)據(jù)的描述性數(shù)據(jù)信息,用來定義用戶文檔到索引文檔的一個(gè)映射關(guān)系,它有文檔模型和字段模型兩種。其中,文檔模型包含了文檔類型、文檔所屬域和文檔包含的字段屬性集合。字段模型包含了用戶文檔的字段名稱、索引類型、是否保存、是否索引、是否拼音、是否多值、是否唯一和是否只讀。其中,索引類型指的是字段在建索引和查詢過程中使用的分詞器類型,是否只讀指的是限制某些字段寫屬性或者只能由后端服務(wù)來進(jìn)行相應(yīng)的更新。
[0049]圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的基于元數(shù)據(jù)模型的檢索裝置的框圖。
[0050]如圖2所示,根據(jù)本發(fā)明的一個(gè)實(shí)施例的基于元數(shù)據(jù)模型的檢索裝置200,包括:索引字段映射單元202、動(dòng)態(tài)匹配單元204和查詢結(jié)果映射單元206。
[0051]其中,索引字段映射單元202用于通過元數(shù)據(jù)模型將用戶文檔中的字段映射為索引字段;動(dòng)態(tài)匹配單元204用于對(duì)所述索引字段進(jìn)行schema動(dòng)態(tài)匹配,得到查詢結(jié)果文檔;查詢結(jié)果映射單元206用于通過所述元數(shù)據(jù)模型將所述查詢結(jié)果文檔映射到所述用戶文檔的字段中。
[0052]在該技術(shù)方案中,可以solr(—種獨(dú)立的企業(yè)級(jí)搜索應(yīng)用)服務(wù)前端添加一個(gè)元數(shù)據(jù)層,用來管理元數(shù)據(jù)模型,其接受并保存用戶定義的元數(shù)據(jù),同時(shí)可以通知使用元數(shù)據(jù)的元數(shù)據(jù)層去數(shù)據(jù)庫中加載最新的元數(shù)據(jù),由于元數(shù)據(jù)層是在索引集群之前,并且直接面向客戶提供搜索和索引服務(wù),故索引和搜索服務(wù)都會(huì)使用用戶定義的元數(shù)據(jù)來進(jìn)行驗(yàn)證。
[0053]這樣,通過元數(shù)據(jù)模型可以將用戶用于檢索的字段映射為索引字段,再對(duì)索引字段進(jìn)行schema(可擴(kuò)展標(biāo)記語言架構(gòu))動(dòng)態(tài)匹配,從而完成檢索,并且,可以將檢索得到的查詢結(jié)果文檔繼續(xù)經(jīng)由元數(shù)據(jù)模型映射到用戶文檔的字段,完成檢索步驟。通過該技術(shù)方案,在用戶文檔類型發(fā)生變更后,直接更新元數(shù)據(jù)模型即可,而不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度,使開發(fā)工作更加簡(jiǎn)單高效,實(shí)現(xiàn)了以較少的資源提供更穩(wěn)定的服務(wù)。
[0054]在上述技術(shù)方案中,優(yōu)選地,所述元數(shù)據(jù)模型為客戶端的應(yīng)用程序接口與索引服務(wù)器之間的元數(shù)據(jù)層,所述用戶文檔來自所述客戶端,所述schema動(dòng)態(tài)匹配的服務(wù)由所述索引服務(wù)器提供。
[0055]在該技術(shù)方案中,用戶文檔中具有客戶端的用戶用于檢索的字段,solr(—種獨(dú)立的企業(yè)級(jí)搜索應(yīng)用)服務(wù)前端添加有一個(gè)元數(shù)據(jù)層,用來管理元數(shù)據(jù)模型,其接受并保存用戶定義的元數(shù)據(jù),同時(shí)可以通知使用元數(shù)據(jù)的元數(shù)據(jù)層去數(shù)據(jù)庫中加載最新的元數(shù)據(jù),由于元數(shù)據(jù)層是在索引集群之前,并且直接面向客戶提供搜索和索引服務(wù),故索引和搜索服務(wù)都會(huì)使用用戶定義的元數(shù)據(jù)來進(jìn)行驗(yàn)證,從而在用戶文檔類型發(fā)生變更后,直接更新元數(shù)據(jù)模型即可,而不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度。
[0056]在上述任一技術(shù)方案中,優(yōu)選地,索引字段映射單元202具體用于:根據(jù)所述元數(shù)據(jù)模型,確定所述用戶文檔所需的元數(shù)據(jù),并在預(yù)設(shè)元數(shù)據(jù)庫中為所述用戶文檔調(diào)用所述所需的元數(shù)據(jù),其中,所述用戶文檔所需的元數(shù)據(jù)為所述用戶文檔到所述索引服務(wù)器的索引文檔的映射關(guān)系。
[0057]在該技術(shù)方案中,可以根據(jù)元數(shù)據(jù)層中的用戶文檔所需的元數(shù)據(jù)進(jìn)行映射,使得用戶文檔中的字段可以映射為索引字段,從而進(jìn)一步通過索引字段進(jìn)行schema動(dòng)態(tài)匹配,從而完成檢索。
[0058]在上述任一技術(shù)方案中,優(yōu)選地,還包括:全量更新單元208,根據(jù)來自所述客戶端的注解,為所述元數(shù)據(jù)模型定義全量元數(shù)據(jù),并將定義的所述全量元數(shù)據(jù)同步更新至所述索引服務(wù)器;增量更新單元210,根據(jù)來自所述客戶端或所述索引服務(wù)器的修改命令,修改所述元數(shù)據(jù)模型的元數(shù)據(jù)。
[0059]在該技術(shù)方案中,元數(shù)據(jù)的管理分為查詢與更新兩種,更新時(shí)又可分為全量更新和增量更新兩種,其中,全量更新即通過客戶端使用注解來定義全量元數(shù)據(jù),同時(shí)在索引服務(wù)器啟動(dòng)時(shí),將元數(shù)據(jù)更新到索引服務(wù)器,增量更新即根據(jù)來自客戶端的應(yīng)用程序接口或者服務(wù)端的網(wǎng)頁界面的修改命令修改元數(shù)據(jù)中的相關(guān)內(nèi)容。通過對(duì)元數(shù)據(jù)的更新,可不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度,使開發(fā)工作更加簡(jiǎn)單高效,實(shí)現(xiàn)了以較少的資源提供更穩(wěn)定的服務(wù)。
[0060]在上述任一技術(shù)方案中,優(yōu)選地,所述元數(shù)據(jù)模型包括文檔模型和字段模型,其中,所述文檔模型包括:文檔類型、文檔所屬域和文檔包含的字段屬性集合,所述字段模型包括:所述用戶文檔的字段名稱、索引類型和其他屬性,所述其他屬性包括:是否保存、是否索引、是否為拼音、是否為多值、是否為唯一和是否為只讀。
[0061]在該技術(shù)方案中,元數(shù)據(jù)是關(guān)于數(shù)據(jù)的描述性數(shù)據(jù)信息,用來定義用戶文檔到索引文檔的一個(gè)映射關(guān)系,它有文檔模型和字段模型兩種。其中,文檔模型包含了文檔類型、文檔所屬域和文檔包含的字段屬性集合。字段模型包含了用戶文檔的字段名稱、索引類型、是否保存、是否索引、是否拼音、是否多值、是否唯一和是否只讀。其中,索引類型指的是字段在建索引和查詢過程中使用的分詞器類型,是否只讀指的是限制某些字段寫屬性或者只能由后端服務(wù)來進(jìn)行相應(yīng)的更新。
[0062]圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的客戶端、元數(shù)據(jù)層與索引集群的交互示意圖。
[0063]如圖3所示,客戶端通過應(yīng)用程序接口與元數(shù)據(jù)模型進(jìn)行交互,具體地,客戶端通過元數(shù)據(jù)模型的搜索服務(wù)和/或索引服務(wù)與索引集群進(jìn)行交互,從而完成檢索操作。
[0064]元數(shù)據(jù)模型作為隔離層置于客戶端和索引服務(wù)器之間,由于有隔離層的存在,索引集群可以更容易地?cái)U(kuò)展,無論是橫向還是縱向,前端的索引服務(wù)器都不會(huì)感知。元數(shù)據(jù)管理單元是專門用來管理元數(shù)據(jù)模型的,其接受并保存用戶定義的元數(shù)據(jù),同時(shí)可以通知使用元數(shù)據(jù)的隔離層去數(shù)據(jù)庫中加載最新的元數(shù)據(jù)。
[0065]由于元數(shù)據(jù)模型是在索引集群之前,并且直接面向客戶提供搜索和索引服務(wù),故索引和搜索服務(wù)都會(huì)使用用戶定義的元數(shù)據(jù)來進(jìn)行驗(yàn)證,從而在用戶文檔類型發(fā)生變更后,直接更新元數(shù)據(jù)模型即可,而不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度。
[0066]元數(shù)據(jù)的管理分為查詢與更新兩種,更新時(shí)又可分為全量更新和增量更新兩種,其中,全量更新即通過客戶端使用注解來定義全量元數(shù)據(jù),同時(shí)在索引服務(wù)器啟動(dòng)時(shí),將元數(shù)據(jù)更新到索引服務(wù)器,增量更新即根據(jù)來自客戶端的應(yīng)用程序接口或者服務(wù)端的網(wǎng)頁界面的修改命令修改元數(shù)據(jù)中的相關(guān)內(nèi)容。通過對(duì)元數(shù)據(jù)的更新,可不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度,使開發(fā)工作更加簡(jiǎn)單高效,實(shí)現(xiàn)了以較少的資源提供更穩(wěn)定的服務(wù)。
[0067]需要說明的是,在索引節(jié)點(diǎn)中,core(處理器)的數(shù)量太多,會(huì)影響到節(jié)點(diǎn)啟動(dòng)速度,為減少core的數(shù)量,可以將一部分用戶應(yīng)用的數(shù)據(jù)映射到同一個(gè)core中,這樣能提高節(jié)點(diǎn)的使用效率。
[0068]元數(shù)據(jù)是關(guān)于數(shù)據(jù)的描述性數(shù)據(jù)信息,用來定義用戶文檔到索引文檔的一個(gè)映射關(guān)系,它有文檔模型和字段模型兩種。其中,文檔模型包含了文檔類型、文檔所屬域和文檔包含的字段屬性集合。字段模型包含了用戶文檔的字段名稱、索引類型、是否保存、是否索弓丨、是否拼音、是否多值、是否唯一和是否只讀。其中,索引類型指的是字段在建索引和查詢過程中使用的分詞器類型,是否只讀指的是限制某些字段寫屬性或者只能由后端服務(wù)來進(jìn)行相應(yīng)的更新。
[0069]索引集群中,可以根據(jù)預(yù)先定義的分詞類型定義相關(guān)的動(dòng)態(tài)字段類型和一些必要的內(nèi)部使用的字段名稱,如_111(1_、_丨7口6_、_(1011^;[11_,這些是用來標(biāo)示文檔的唯一ID(地址)、類型和所屬域,為每個(gè)文檔的都需要的必要字段。
[0070]其中,_uid_是由多個(gè)字段合并組成,即應(yīng)用該類型文檔的唯一字段,在與應(yīng)用的ID組合而成。在建索引時(shí),用戶文檔通過該用戶元數(shù)據(jù)模型檢驗(yàn),把用戶文檔字段映射到索引字段,索引字段再跟索引中schema中動(dòng)態(tài)字段匹配。同時(shí),需要將不符合元數(shù)據(jù)模型的字段從文檔中剔除去,對(duì)相關(guān)找不到對(duì)應(yīng)的元數(shù)據(jù)文檔拋出異常。搜索時(shí),索引服務(wù)器將接收和解析用戶的查詢語句,根據(jù)用戶檢索文檔的元數(shù)據(jù)模型,將語句中的字段映射為索引字段,然后進(jìn)行查詢,最后,將查詢返回的文檔內(nèi)容重新映射到用戶文檔字段。
[0071 ] 例如,用戶搜索name:北京,通過元數(shù)據(jù)映射轉(zhuǎn)換為name_s_s,匹配索引schema類型*_s_s;索引服務(wù)器返回相關(guān)的文檔name_S_S:北京天安門,再通過元數(shù)據(jù)映射回用戶原有字段名稱name:北京天安門。建索引的過程也與之類似。s_s對(duì)應(yīng)了用戶字段的類型和創(chuàng)建索引使用的分詞器兩種,這樣,用戶為達(dá)到自己想要的搜索效果選擇不同的類型,很好地隱藏了索引字段對(duì)用戶的感知,在用戶文檔類型發(fā)生變更后,直接更新元數(shù)據(jù)模型,并使之生效即可,而不必更新索引中相關(guān)的配置并重新加載,減少了模型變化后更新的復(fù)雜度。
[0072]以上結(jié)合附圖詳細(xì)說明了本發(fā)明的技術(shù)方案,通過本發(fā)明的技術(shù)方案,在用戶文檔類型發(fā)生變更后,直接更新元數(shù)據(jù)模型即可,而不必更新索引服務(wù)器中的相關(guān)配置并重新加載,減少了更新復(fù)雜度,使開發(fā)工作更加簡(jiǎn)單高效,實(shí)現(xiàn)了以較少的資源提供更穩(wěn)定的服務(wù)。
[0073]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于元數(shù)據(jù)模型的檢索方法,其特征在于,包括: 通過元數(shù)據(jù)模型將用戶文檔中的字段映射為索引字段; 對(duì)所述索引字段進(jìn)行schema動(dòng)態(tài)匹配,得到查詢結(jié)果文檔; 通過所述元數(shù)據(jù)模型將所述查詢結(jié)果文檔映射到所述用戶文檔的字段中。2.根據(jù)權(quán)利要求1所述的基于元數(shù)據(jù)模型的檢索方法,其特征在于,所述元數(shù)據(jù)模型為客戶端的應(yīng)用程序接口與索引服務(wù)器之間的元數(shù)據(jù)層,所述用戶文檔來自所述客戶端,所述schema動(dòng)態(tài)匹配的服務(wù)由所述索引服務(wù)器提供。3.根據(jù)權(quán)利要求2所述的基于元數(shù)據(jù)模型的檢索方法,其特征在于,所述通過元數(shù)據(jù)模型將用戶文檔中的字段映射為索引字段,具體包括: 根據(jù)所述元數(shù)據(jù)模型,確定所述用戶文檔所需的元數(shù)據(jù),并在預(yù)設(shè)元數(shù)據(jù)庫中為所述用戶文檔調(diào)用所述所需的元數(shù)據(jù),其中,所述用戶文檔所需的元數(shù)據(jù)為所述用戶文檔到所述索引服務(wù)器的索引文檔的映射關(guān)系。4.根據(jù)權(quán)利要求3所述的基于元數(shù)據(jù)模型的檢索方法,其特征在于,還包括: 根據(jù)來自所述客戶端的注解,為所述元數(shù)據(jù)模型定義全量元數(shù)據(jù),并將定義的所述全量元數(shù)據(jù)同步更新至所述索弓I服務(wù)器;和/或 根據(jù)來自所述客戶端或所述索引服務(wù)器的修改命令,修改所述元數(shù)據(jù)模型的元數(shù)據(jù)。5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的基于元數(shù)據(jù)模型的檢索方法,其特征在于,所述元數(shù)據(jù)模型包括文檔模型和字段模型,其中,所述文檔模型包括:文檔類型、文檔所屬域和文檔包含的字段屬性集合,所述字段模型包括:所述用戶文檔的字段名稱、索引類型和其他屬性,所述其他屬性包括:是否保存、是否索引、是否為拼音、是否為多值、是否為唯一和是否為只讀。6.一種基于元數(shù)據(jù)模型的檢索裝置,其特征在于,包括: 索引字段映射單元,通過元數(shù)據(jù)模型將用戶文檔中的字段映射為索引字段; 動(dòng)態(tài)匹配單元,對(duì)所述索引字段進(jìn)行schema動(dòng)態(tài)匹配,得到查詢結(jié)果文檔; 查詢結(jié)果映射單元,通過所述元數(shù)據(jù)模型將所述查詢結(jié)果文檔映射到所述用戶文檔的字段中。7.根據(jù)權(quán)利要求6所述的基于元數(shù)據(jù)模型的檢索裝置,其特征在于,所述元數(shù)據(jù)模型為客戶端的應(yīng)用程序接口與索引服務(wù)器之間的元數(shù)據(jù)層,所述用戶文檔來自所述客戶端,所述schema動(dòng)態(tài)匹配的服務(wù)由所述索引服務(wù)器提供。8.根據(jù)權(quán)利要求7所述的基于元數(shù)據(jù)模型的檢索裝置,其特征在于,所述索引字段映射單元具體用于: 根據(jù)所述元數(shù)據(jù)模型,確定所述用戶文檔所需的元數(shù)據(jù),并在預(yù)設(shè)元數(shù)據(jù)庫中為所述用戶文檔調(diào)用所述所需的元數(shù)據(jù),其中,所述用戶文檔所需的元數(shù)據(jù)為所述用戶文檔到所述索引服務(wù)器的索引文檔的映射關(guān)系。9.根據(jù)權(quán)利要求8所述的基于元數(shù)據(jù)模型的檢索裝置,其特征在于,還包括: 全量更新單元,根據(jù)來自所述客戶端的注解,為所述元數(shù)據(jù)模型定義全量元數(shù)據(jù),并將定義的所述全量元數(shù)據(jù)同步更新至所述索引服務(wù)器;和/或 增量更新單元,根據(jù)來自所述客戶端或所述索引服務(wù)器的修改命令,修改所述元數(shù)據(jù)模型的元數(shù)據(jù)。10.根據(jù)權(quán)利要求6至9中任一項(xiàng)所述的基于元數(shù)據(jù)模型的檢索裝置,其特征在于,所述元數(shù)據(jù)模型包括文檔模型和字段模型,其中,所述文檔模型包括:文檔類型、文檔所屬域和文檔包含的字段屬性集合,所述字段模型包括:所述用戶文檔的字段名稱、索引類型和其他屬性,所述其他屬性包括:是否保存、是否索引、是否為拼音、是否為多值、是否為唯一和是否為只讀。
【文檔編號(hào)】G06F17/30GK105843867SQ201610154457
【公開日】2016年8月10日
【申請(qǐng)日】2016年3月17日
【發(fā)明人】洪光華
【申請(qǐng)人】暢捷通信息技術(shù)股份有限公司