版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、開放搜索產(chǎn)品使用手冊(cè)開放搜索/產(chǎn)品使用手冊(cè)開放搜索/產(chǎn)品使用手冊(cè) PAGE 54 PAGE 54產(chǎn)品使用手冊(cè)應(yīng)用類型說明目前系統(tǒng)支持兩種應(yīng)用類型:標(biāo)準(zhǔn)版與高級(jí)版。后續(xù)仍會(huì)有更多類型推出,請(qǐng)各位關(guān)注。標(biāo)準(zhǔn)版主要應(yīng)用在較簡(jiǎn)單業(yè)務(wù)場(chǎng)景下,尤其是對(duì)數(shù)據(jù)更新時(shí)效性要求高的場(chǎng)景,比如日志、物流、訂單、crm等。 主要特征:更新速度快且穩(wěn)定、僅支持單表。高級(jí)版主要應(yīng)用在業(yè)務(wù)邏輯復(fù)雜,或者對(duì)搜索效果要求高的場(chǎng)景,比如電商、網(wǎng)頁檢索、小說、資訊、O2O等。 主要特征:支持簡(jiǎn)單多表join邏輯、下拉提示、智能分析(同義詞、糾錯(cuò)等)。二者功能區(qū)別費(fèi)用說明詳見購買指導(dǎo)部分。功能列表標(biāo)準(zhǔn)版高級(jí)版多表left join單
2、表多表數(shù)據(jù)更新命令支持ADD/DELETE支持ADD/UPDATE/DELETE數(shù)據(jù)處理插件簡(jiǎn)單豐富RDS自動(dòng)同步暫不支持支持OSS自動(dòng)同步暫不支持支持ODPS自動(dòng)同步支持支持?jǐn)?shù)據(jù)更新時(shí)效性實(shí)時(shí)準(zhǔn)實(shí)時(shí)全量索引多版本2個(gè)1個(gè)全量版本切換支持不支持復(fù)雜分詞支持豐富豐富復(fù)雜查詢語法豐富豐富統(tǒng)計(jì)功能支持支持排序算法豐富豐富LBS服務(wù)支持支持結(jié)果摘要支持支持查詢分析不支持支持下拉提示不支持支持字段類型說明數(shù)據(jù)推送到OpenSearch后會(huì)先保存到離線數(shù)據(jù)表中,在此階段,為了方便用戶推送數(shù)據(jù),數(shù)據(jù)表允許用戶根 據(jù)實(shí)際業(yè)務(wù)場(chǎng)景定義多個(gè)表(需要指定關(guān)聯(lián)字段),并提供了數(shù)據(jù)處理的插件。數(shù)據(jù)處理完畢后會(huì)join成
3、一張 索引表,這種索引表主要定義搜索屬性,供引擎構(gòu)建索引及查詢使用。這里分別介紹下數(shù)據(jù)表與索引表的字段對(duì)應(yīng)關(guān)系。數(shù)據(jù)表字段數(shù)據(jù)表主要為數(shù)據(jù)導(dǎo)入時(shí)使用,不同的數(shù)據(jù)處理插件對(duì)類型有不同的要求,這里只是初步類型選擇,下一步將 系統(tǒng)限制-字段相關(guān)部分說明。超過取值范圍將溢出或者截?cái)?,?qǐng) 務(wù)必保證選擇類型正確。類型說明INTint64整型INT_ARRAYint64整型數(shù)組FLOAT浮點(diǎn)型FLOAT_ARRAY浮點(diǎn)型數(shù)組DOUBLE浮點(diǎn)型DOUBLE_ARRAY浮點(diǎn)型數(shù)組LITERAL字符串常量,僅支持精確匹配LITERAL_ARRAY字符串常量數(shù)組,單個(gè)元素僅支持精確匹配SHORT_TEXT短文本,長
4、度在100字節(jié)內(nèi),支持若干分詞方式TEXT長文本,支持若干分詞方式索引表字段對(duì)于INT及FLOAT類型介紹這里不再累贅(限制詳見系統(tǒng)限制),重點(diǎn)介紹下各字段類型。主要類型介紹搜索效果如何跟分詞有很大的關(guān)系,分詞方式直接影響最終的搜索效果展示,目前系統(tǒng)支持若干的分詞方式,需要根據(jù)實(shí)際業(yè)務(wù)場(chǎng)景的需求選擇合適的字段類型。接下來,我們?cè)敿?xì)說明下各個(gè)字段的展現(xiàn)效果及適用場(chǎng)景,供大家參考。不分詞不分詞,適合一些需要精確匹配或者只展示不搜索的場(chǎng)景,如標(biāo)簽、關(guān)鍵詞、url等。LITERAL、INT類型可選如文檔字段內(nèi)容為菊花茶,則只有搜索菊花茶的情況下可以召回。如文檔字段內(nèi)容為菊花茶,則只有搜索菊花茶的情況下
5、可以召回。中文基礎(chǔ)分詞如文檔字段內(nèi)容為菊花茶,則搜索菊花茶、菊花、茶、花茶的情況下可以召回。按照檢索單元做分詞,適合有語義的中文搜索場(chǎng)景,如標(biāo)題、文本等。TEXT及SHORT_TEXT類型可選。如文檔字段內(nèi)容為菊花茶,則搜索菊花茶、菊花、茶、花茶的情況下可以召回。中文單字分詞如文檔字段內(nèi)容為菊花茶,則搜索菊花茶、菊花、茶、花茶、菊、花、菊茶的情況下可以召回。按照單字/單詞分詞,適合非語義的中文搜索場(chǎng)景,如小說作者名稱、店鋪名等;TEXT及SHORT_TEXT類型可 選。如文檔字段內(nèi)容為菊花茶,則搜索菊花茶、菊花、茶、花茶、菊、花、菊茶的情況下可以召回。模糊分詞如文檔字段內(nèi)容為菊花茶,則搜索菊花
6、茶、菊花、茶、花茶、菊、花、菊茶、ju、juhua、juhuacha、 j、jh、jhc等情況下可以召回。如文檔字段內(nèi)容為手機(jī)則通過138來搜索以138開頭的手機(jī)號(hào),通過5678$搜索以5678結(jié)尾的手 機(jī)號(hào);如文檔字段內(nèi)容為菊花茶,則搜索菊花茶、菊花、茶、花茶、菊、花、菊茶、ju、juhua、juhuacha、 j、jh、jhc等情況下可以召回。如文檔字段內(nèi)容為手機(jī)則通過138來搜索以138開頭的手機(jī)號(hào),通過5678$搜索以5678結(jié)尾的手 機(jī)號(hào);如文檔字段內(nèi)容為OpenSearch,則通過單個(gè)字母或者組合都可以檢索到。英文去詞根分詞如文檔
7、字段內(nèi)容為英文分詞器 english analyzer,則搜索英文分詞器、english、analyz、analyzer、analyzers、適合于英文語義搜索場(chǎng)景,對(duì)于分詞后的每個(gè)英文單詞默認(rèn)會(huì)做去詞根、單復(fù)數(shù)轉(zhuǎn)化。TEXT及SHORT_TEXT類 型可選。如文檔字段內(nèi)容為英文分詞器 english analyzer,則搜索英文分詞器、english、analyz、analyzer、analyzers、analyze、analyzed、analyzing。analyze、analyzed、analyzing。(注意:英文分詞器中連續(xù)的中文會(huì)被分成一個(gè)詞)英文簡(jiǎn)單分詞如文檔字段內(nèi)容為英文分詞器
8、 english analyzer,則搜索英文分詞器、english、analyzer。(注意:英文分詞器中連續(xù)的中文會(huì)被分成一個(gè)詞)如文檔字段內(nèi)容為英文分詞器 english analyzer,則搜索英文分詞器、english、analyzer。(注意:英文分詞器中連續(xù)的中文會(huì)被分成一個(gè)詞)自定義分詞自定義分詞,適合特殊場(chǎng)景下系統(tǒng)自帶無法解決的搜索場(chǎng)景,可以實(shí)現(xiàn)完全用戶控制的效果。推送文檔及搜索 時(shí)使用制表符t對(duì)字段內(nèi)容(或查詢?cè)~)進(jìn)行分隔,注意二者分詞的一致性,否則會(huì)導(dǎo)致無法召回文檔的情況如字段內(nèi)容為菊t花茶thao,則只有查詢?cè)~菊、花茶、菊t花茶、花茶thao、菊thao、菊t花茶tha
9、o可以召 回該文檔。如字段內(nèi)容為菊t花茶thao,則只有查詢?cè)~菊、花茶、菊t花茶、花茶thao、菊thao、菊t花茶thao可以召 回該文檔。適用場(chǎng)景有語義環(huán)境的中文搜索,建議使用中文語義分詞;對(duì)于短文本或者非語義環(huán)境中文搜索(對(duì)排序沒有太多要求),建議使用中文單字分詞來擴(kuò)大召回;拼音搜索請(qǐng)使用模糊分詞;英文場(chǎng)景下請(qǐng)使用英文去詞根分詞;某些場(chǎng)景下,中文語義分詞及單字分詞搭配使用,可以獲得非常好的搜索效果。如查詢query=title_index:ORsws_title_index:菊花茶,精排表達(dá)式為??梢詫?shí)現(xiàn)包含xx菊xx花xx茶xx的文檔,且排 序上菊花茶會(huì)排在前面。注意事項(xiàng)如果TEXT字
10、段設(shè)置了搜索結(jié)果摘要,擴(kuò)展檢索單元部分詞組(如上例中的花茶)將不會(huì)被添加飄紅 標(biāo)簽。中文單字分詞對(duì)于數(shù)字跟單詞認(rèn)為是一個(gè)詞,如hello word,搜索hello可以召回,搜索he則無法召回,敬請(qǐng)注意。若需要做單詞內(nèi)召回,請(qǐng)選擇模糊分詞。系統(tǒng)限制項(xiàng)值系統(tǒng)相關(guān)項(xiàng)值每個(gè)用戶應(yīng)用數(shù)不限制每個(gè)用戶doc總數(shù)理論上不限制,具體根據(jù)應(yīng)用配額文檔容量來計(jì)算每個(gè)用戶pv總數(shù)理論上不限制,具體根據(jù)應(yīng)用配額QPS峰值來計(jì)算系統(tǒng)支持漢字編碼UTF-8應(yīng)用相關(guān)項(xiàng)值應(yīng)用名長度30字符應(yīng)用字段名長度30字符排序表達(dá)式名稱長度30字符附表個(gè)數(shù)10應(yīng)用字段個(gè)數(shù)256源表表名長度16字符索引字段名64字符源表外表關(guān)聯(lián)層級(jí)2級(jí)I
11、NT類字段個(gè)數(shù)256STRING字段個(gè)數(shù)256TEXT類型字段個(gè)數(shù)32組合索引個(gè)數(shù)4個(gè)組合索引包含字段數(shù)8個(gè)TEXT類型單字段索引個(gè)數(shù)32個(gè)STRING類型單字段索引個(gè)數(shù)256個(gè)排序表達(dá)式項(xiàng)值粗排表達(dá)式條數(shù)256個(gè)精排表達(dá)式條數(shù)256個(gè)下拉提示項(xiàng)值每個(gè)應(yīng)用下拉提示規(guī)則數(shù)目3每個(gè)下拉提示規(guī)則包含字段數(shù)3每個(gè)下拉提示規(guī)則包含黑名單條目500每個(gè)下拉提示規(guī)則包含推薦詞條條目500推送數(shù)據(jù)【應(yīng)用級(jí)別】(高級(jí)版)項(xiàng)值每秒推送次數(shù)5次每個(gè)請(qǐng)求包大小編碼前2M每條文檔大小1MRDS增量同步速率1500條記錄/秒推送數(shù)據(jù)【應(yīng)用級(jí)別】(標(biāo)準(zhǔn)版)項(xiàng)值每次推送文檔數(shù)1000個(gè),建議100個(gè)性能更好每秒推送次數(shù)500
12、次每秒請(qǐng)求總?cè)萘烤幋a前2M每次請(qǐng)求總?cè)萘烤幋a前2M每條文檔大小1M增量處理時(shí)效性99%的文檔推送成功后在1s內(nèi)可以搜索到搜索相關(guān)項(xiàng)值每個(gè)子句(除filter)最大長度編碼后1kfilter子句最大長度編碼后4k請(qǐng)求最多返回結(jié)果數(shù)5000參與粗排文檔數(shù)100萬參與精排文檔數(shù)默認(rèn)200粗排字段4個(gè)項(xiàng)值字段相關(guān)項(xiàng)值INT8-2727-1UINT8028-1INT16-215215-1UINT160216-1INT32-231231-1UINT320232-1INT64-263263-1UINT640264-1FLOAT+/-3.40282e+038DOUBLE+/-1.79769e+308STRIN
13、G64KTEXT64k個(gè)詞創(chuàng)建/修改應(yīng)用界面操作以帖子論壇為例。填寫基本信息定義應(yīng)用結(jié)構(gòu)目前提供了4種方式的應(yīng)用結(jié)構(gòu)創(chuàng)建方式,同時(shí)OpenSearch高級(jí)版提供了多表支持功能,以方便業(yè)務(wù)復(fù)雜場(chǎng)景 下調(diào)用。主輔表目前僅支持N:1的關(guān)系,不支持1:N。且最多支持兩層關(guān)聯(lián),比如:a-b,b-c,a-d可以支 持,但a-b,b-a的環(huán)狀關(guān)系不支持,a-b,b-c,c-d超過2層也不支持。1,通過模板創(chuàng)建應(yīng)用結(jié)構(gòu)。系統(tǒng)默認(rèn)提供了幾種常用的模板樣式,用戶也可以將自己定義的應(yīng)用結(jié) 構(gòu)創(chuàng)建成模板,可以通過已有模板快速創(chuàng)建出一個(gè)新的應(yīng)用。2,通過上傳文檔創(chuàng)建應(yīng)用結(jié)構(gòu)。您可以上傳已有的數(shù)據(jù)文件(僅支持JSON格式
14、),系統(tǒng)會(huì)自動(dòng)解析 并創(chuàng)建出初始的應(yīng)用結(jié)構(gòu)(注意字段類型等需要重新定義)3,通過數(shù)據(jù)源方式創(chuàng)建應(yīng)用結(jié)構(gòu)。適用于通過RDS、ODPS等數(shù)據(jù)源同步的場(chǎng)景,可以快速由源表結(jié) 構(gòu)創(chuàng)建出初始的應(yīng)用結(jié)構(gòu),節(jié)省手動(dòng)構(gòu)造的工作量,降低出錯(cuò)概率。這里以RDS為例,其他數(shù)據(jù)源操 作類似,具體詳見數(shù)據(jù)源配置4,通過手動(dòng)方式創(chuàng)建應(yīng)用結(jié)構(gòu)。非以上三種的場(chǎng)景使用。創(chuàng)建索引及屬性字段確認(rèn)明細(xì),創(chuàng)建成功應(yīng)用基本配置基本信息該部分主要羅列了應(yīng)用的基本信息,以及API入口、訪問數(shù)據(jù)指標(biāo)、數(shù)據(jù)清理功能配置。基本信息包含應(yīng)用的名稱、id、所在地域、運(yùn)行狀態(tài)、備注等。API入口每個(gè)地域的API域名不同,使用API或者SDK訪問Open
15、Search的時(shí)候需要根據(jù)此處給出的API入口進(jìn) 行訪問。同時(shí)不同地域也根據(jù)使用的場(chǎng)景區(qū)分了內(nèi)網(wǎng)(ECS可用)、公網(wǎng)、VPC域名,請(qǐng)根據(jù)實(shí)際部 署情況選擇合適的域名,使用前請(qǐng)先ping下,確定可訪問。數(shù)據(jù)清理可以進(jìn)行數(shù)據(jù)清空(數(shù)據(jù)量較大的情況下建議直接刪除應(yīng)用重新創(chuàng)建的方式效率更高)、自動(dòng)(立即)請(qǐng)求過期數(shù)據(jù),所有的清理記錄都可以在清理歷史中查詢。配額管理配額管理是開放搜索提供的一種對(duì)用戶使用資源進(jìn)行有效管理的功能。對(duì)不同應(yīng)用進(jìn)行資源協(xié)調(diào),防止應(yīng)用間 相互干擾,從而為用戶提供更穩(wěn)定的服務(wù)。目前配額主要包含兩部分:QPS峰值及文檔容量,可以讓用戶按需使用。目前已開放預(yù)警功能,報(bào)警信息會(huì)發(fā) 送到用
16、戶的郵箱中,請(qǐng)及時(shí)調(diào)整,避免出現(xiàn)超過配額被拒絕的情況。流程演示主界面修改配額驗(yàn)簽通過后的query都將計(jì)入QPS統(tǒng)計(jì),一旦超過配額,這一秒內(nèi)后續(xù)的請(qǐng)求將會(huì)直接報(bào)錯(cuò)無結(jié)果,所以請(qǐng)務(wù)必及時(shí)調(diào)整配額。3. 查看審批狀態(tài)數(shù)據(jù)源OpenSearch中的數(shù)據(jù),既支持通過API/SDK/上傳界面的方式導(dǎo)入,也支持直接從已有的云端數(shù)據(jù)源進(jìn)行同步。如果選擇通過API或SDK來上傳數(shù)據(jù),可以參照API手冊(cè)直接上傳,無需額外配置。如果選擇同步云端數(shù)據(jù)的 方式,則需要將數(shù)據(jù)源的相關(guān)信息在控制臺(tái)中進(jìn)行配置。目前系統(tǒng)提供了若干的數(shù)據(jù)處理插件可以實(shí)現(xiàn)一些簡(jiǎn) 單的數(shù)據(jù)轉(zhuǎn)化操作,在配置數(shù)據(jù)源字段對(duì)應(yīng)關(guān)系(API方式上傳數(shù)據(jù)的暫
17、不支持,需要用戶推送前處理好)可以 選擇使用。數(shù)據(jù)處理插件系統(tǒng)中某些搜索功能或者特征函數(shù)需要特殊的字段類型支持。如Array類型字段,需要通過如下插件來轉(zhuǎn)化,用 戶無法直接輸入。配置項(xiàng)名稱說明示例JsonKeyValueExtractor從Json格式的來源字段中提取指定的鍵值,提取出來的鍵值作為目標(biāo)表字段的內(nèi)容。title:the content,body:thecontent 中提取出鍵值title的內(nèi)容,若內(nèi)容為JsonArray格式,則將轉(zhuǎn)化為系統(tǒng)中Array類型字段內(nèi)容MultiValueSpliter將來源字段按照分隔符分割成多個(gè)值,分割后的內(nèi)容作為目標(biāo)表字段的內(nèi)容,目標(biāo)表字段必須
18、是配置為ARRAY類型的字段 (若分隔符為不可見字符,需要使用unicode字符來標(biāo)識(shí),如u001D)數(shù)據(jù)源內(nèi)容為:1,2,3,指定分隔符為,KeyValueExtractor從KV格式的來源字段中提取指定的鍵值,提取出來的鍵值作為目標(biāo)表字段的內(nèi)容。分隔符可以不填實(shí)際內(nèi)容為:key1:value1,value2;key2:val ue3,鍵為key1,key2,鍵分隔符為分號(hào),鍵值分隔符為冒號(hào),多值分隔符為逗號(hào)。如果配置了多值分隔符,則將轉(zhuǎn)化為系統(tǒng)中Array類型字段內(nèi)容StringCatenateExtractor將多個(gè)指定字段按照指定的順序拼接成一個(gè)字符串;字段列表以逗號(hào)分隔(字段需來自于
19、目標(biāo)字段)將field1,field2內(nèi)容按照_組成新的字段內(nèi)容。另系統(tǒng)變量$table可以獲取當(dāng)前表名API/SDK數(shù)據(jù)源通過API/SDK導(dǎo)入非常靈活,完全由用戶控制,具體請(qǐng)參見API開發(fā)者指南及SDK文檔。Mysql數(shù)據(jù)源配置僅內(nèi)網(wǎng)杭州區(qū)域可見,請(qǐng)移步TDDL對(duì)接OpenSearch流程。ODPS源開放數(shù)據(jù)處理服務(wù)(Open Data Processing Service, 簡(jiǎn)稱ODPS)是一個(gè)開放的計(jì)算平臺(tái),如果您要導(dǎo)入到ODPS源信息,系統(tǒng)會(huì)自動(dòng)去獲取數(shù)據(jù)。目 前只支持全量。OpenSearch對(duì)接ODPS(云 梯2)流程。入口有兩個(gè):在數(shù)據(jù)同步中選擇ODPS作為數(shù)據(jù)來源;或者創(chuàng)建應(yīng)
20、用的時(shí)候直接配置ODPS源。配置源信息. 我 的 Project 數(shù)據(jù)獲取。在第一個(gè)選項(xiàng)卡中選擇我的project,從顯示的project 列表中選擇待同步的project名稱,然后從顯示的tables選項(xiàng)卡中選擇待同步的table名稱。project也支持已被其他帳號(hào)授權(quán)給當(dāng)前賬號(hào)的odps的project數(shù)據(jù)獲取。在第一個(gè)選項(xiàng)卡中選擇被授權(quán) 的project;在project 輸入框中填寫待同步的project名稱;在tables輸入框中填寫待同步的table名稱;填寫完成之后點(diǎn)擊連接數(shù)據(jù)按鈕,請(qǐng)保證project名稱和table名稱填寫正確。如果連接錯(cuò)誤,會(huì)有錯(cuò)誤信息提示,請(qǐng)根據(jù)錯(cuò)誤信息
21、進(jìn)行相應(yīng)的修改操作。當(dāng)用戶勾選【使用分區(qū)導(dǎo)入】后,OpenSearch會(huì)根據(jù)指定分區(qū)字段值,過濾出ODPS表中需要的分區(qū)。(等號(hào)/逗號(hào)/分號(hào)/雙豎線為系統(tǒng)保留字符,分區(qū)列名/列值中應(yīng)避免出現(xiàn)這些字符):1: 支持多個(gè)分區(qū)過濾規(guī)則,不同的分區(qū)過濾規(guī)則用分號(hào)分隔,如pt=1;pt=2 將匹配滿足分區(qū)字段pt=1或者pt=2的所有字段2: 分區(qū)過濾規(guī)則,支持指定多個(gè)分區(qū)字段的值,不同分區(qū)字段用逗號(hào)分隔,如:pt1=1,pt2=2,pt3=3 將匹配同時(shí)滿足pt1=1,pt2=2,pt3=3的所有分區(qū)3: 分區(qū)字段的值支持通配符 *,表示該分區(qū)字段可以為任意的值,這種情況下,過濾規(guī)則中也可不寫該字段4
22、pt=0-9*pt值為數(shù)字的所有分區(qū)5: 分區(qū)字段的值支持時(shí)間匹配,匹配規(guī)則: pt=包含格式化時(shí)間的分區(qū)列值|時(shí)間間隔表達(dá)式。如ds=%Y%m%d|1days,表示分區(qū)字段為ds,格式為20150510,需要訪問1天前的數(shù)據(jù)。5.15.2 時(shí) 間 間 隔 表 達(dá) 式 支 持 +/- n , +號(hào)任務(wù)創(chuàng)建時(shí)間的表示n周/天/小時(shí)/分鐘/秒/毫秒后,-號(hào)表示任務(wù)創(chuàng)建時(shí)間的表示n周/天/小時(shí)/分鐘/秒/毫秒前。5.3 系統(tǒng)默認(rèn)會(huì)對(duì)所有過濾規(guī)則,按照+0 days進(jìn)行時(shí)間參數(shù)替換,因此,需要注意的是,用于過濾的字段值不能包含下面這些字符串作為普通的字符串參數(shù),如星期三創(chuàng)建的任務(wù),pt=%abc%a:
23、 星期的簡(jiǎn)寫。如 星期三為Wed%a: 星期的簡(jiǎn)寫。如 星期三為Wed%A: 星期的全寫。如 星期三為Wednesday%b: 月份的簡(jiǎn)寫。如4月份為Apr%B: 月份的全寫。如4月份為April%c: 日期時(shí)間的字符串表示。(如: 04/07/10 10:43:39)%d: 日在這個(gè)月中的天數(shù)(是這個(gè)月的第幾天)%f: 微秒(范圍0,999999)%H: 小時(shí)(24小時(shí)制,0, 23)%I: 小時(shí)(12小時(shí)制,0, 11)%j: 日在年中的天數(shù) 001,366(是當(dāng)年的第幾天)%m: 月份(01,12)%M: 分鐘(00,59)%p: AM或者PM%S: 秒(范圍為00,61,為什么不是00
24、, 59,參考python手冊(cè)_)%U: 周在當(dāng)年的周數(shù)當(dāng)年的第幾周),星期天作為周的第一天%w: 今天在這周的天數(shù),范圍為0, 6,6表示星期天%W: 周在當(dāng)年的周數(shù)(是當(dāng)年的第幾周),星期一作為周的第一天%x: 日期字符串(如:04/07/10)%X: 時(shí)間字符串(如:10:43:39)%y: 2個(gè)數(shù)字表示的年份%Y: 4個(gè)數(shù)字表示的年份%z: 與utc時(shí)間的間隔 (如果是本地時(shí)間,返回空字符串) 。. 選擇數(shù)據(jù)同步并發(fā)控制機(jī)制(目前僅內(nèi)網(wǎng)杭州區(qū)域可見)當(dāng)用戶勾選【使用done文件】后,OpenSearch支持用戶通過上傳done文件的方式控制系統(tǒng)拉取全量數(shù)據(jù)的 時(shí)機(jī),保證全量數(shù)據(jù)的完整性
25、。系統(tǒng)在開始從odps拉全量數(shù)據(jù)之前會(huì)先判斷一下當(dāng)天的done文件是否存在,如果不存在則等待,默認(rèn)等待1小時(shí)后超時(shí)。用戶需從odps官網(wǎng)下載odpsclt安裝包;用戶需要具有所在project空間的CreateResource權(quán)限;安裝后在用戶程序中運(yùn)行如下命令:其中done文件的命名規(guī)則為$prefix_%Y-%m-%d。$prefix: 文件名前綴,默認(rèn)為表名,%Y-%m-%d:索引重建任務(wù)日期,系統(tǒng)定時(shí)任務(wù)目前支持的最小粒度為1天。odpscmd -u accessid -p accesskey -project= -e add file ;odpscmd -u accessid -p
26、accesskey -project= -e add file ;done文件內(nèi)容為json格式,目前僅需包含如下內(nèi)容,用于指定該批全量數(shù)據(jù)的時(shí)間戳(毫秒)(該時(shí) 間戳表示需要回溯的增量數(shù)據(jù)時(shí)間點(diǎn),如果不配置則默認(rèn)從索引重建任務(wù)開始時(shí)間追加數(shù)據(jù)。如,全量數(shù)據(jù)是前一天的,odps處理完畢后2點(diǎn),OpenSearch定時(shí)任務(wù)為2:30,則done文件需要指定為當(dāng) 天0點(diǎn)的毫秒值,系統(tǒng)會(huì)追加0點(diǎn)后的增量,保證數(shù)據(jù)完整性;否則會(huì)從2:30開始追加,這樣0:002:30增量會(huì)丟失。當(dāng)然,若沒有增量,則無需配置該時(shí)間戳):timestamp:1234567890000系統(tǒng)成功連接ODPS時(shí)會(huì)自動(dòng)尋找Ope
27、nSearch表和ODPS表之間的字段對(duì)應(yīng)關(guān)系,將字段名稱相同的列對(duì)應(yīng)起 來,減少手工對(duì)應(yīng)的工作量。對(duì)于未能自動(dòng)對(duì)應(yīng)上的字段列,點(diǎn)擊添加數(shù)據(jù)則可以將對(duì)應(yīng)的OpenSearch字段 添加到同步字段中。對(duì)于ODPS表中的datetime及timestamp類型系統(tǒng)會(huì)自動(dòng)轉(zhuǎn)化為毫秒數(shù),請(qǐng)將對(duì)應(yīng)OpenSearch字段類型設(shè)置為INT64。表格最左邊一列是目標(biāo)字段即OpenSearch的字段,源字段名稱列為ODPS中的字段,請(qǐng)修改/查看此字段 的對(duì)應(yīng)關(guān)系,確保正確之后,再點(diǎn)擊保存按鈕。ODPS數(shù)據(jù)源的數(shù)據(jù)轉(zhuǎn)換插件RDS配置云數(shù)據(jù)庫(Relational Database Service,即關(guān)系型數(shù)據(jù)庫
28、服務(wù),簡(jiǎn)稱RDS)是阿里云對(duì)外提供的一種即開即用、穩(wěn)定可靠、可彈性伸縮的在線數(shù)據(jù)庫服務(wù)(了解RDS )。OpenSearch針對(duì)RDS數(shù)據(jù)源支持如下功能(暫不支持DRDS):目前只支持Mysql類型的實(shí)例支持手動(dòng)/定時(shí)拉取指定數(shù)據(jù)庫指定表的全量數(shù)據(jù)支持增量實(shí)時(shí)同步(默認(rèn)勾選)支持將多個(gè)實(shí)例中多個(gè)數(shù)據(jù)庫中多個(gè)源表數(shù)據(jù)橫向合并到一個(gè)OpenSearch目的表支持?jǐn)?shù)據(jù)字段轉(zhuǎn)換插件支持全量/增量過濾條件支持部分分表名正則匹配配置說明在創(chuàng)建應(yīng)用-配置數(shù)據(jù)源或者應(yīng)用管理-gt;數(shù)據(jù)源都可以進(jìn)行rds數(shù)據(jù)源的配置。步驟如下: 1 . 在數(shù)據(jù)來源中選擇RDS,點(diǎn)擊添加數(shù)據(jù):插件名稱說明實(shí)例IDRDS數(shù)據(jù)庫的實(shí)
29、例ID(不是名稱),可以在RDS控制臺(tái)中獲?。ù笮懨舾校?,暫不支持只讀實(shí)例數(shù)據(jù)庫名該實(shí)例下需要連接的數(shù)據(jù)庫名(大小寫不敏感)表名該數(shù)據(jù)庫下需要訪問的表名(大小寫敏感),支持table_namestart-end、table_name*的分表方式,如table_00-07、table_0-7等過濾條件該過濾條件會(huì)同時(shí)作用于全量和增量數(shù)據(jù)(如果開啟同步),支持如下格式:數(shù)據(jù)庫字段 OP(、=、=、!=) 數(shù)值。多個(gè)過濾條件使用英文逗號(hào)(,)分隔,表示且的關(guān)系(暫不支持或 的關(guān)系)。用戶名數(shù)據(jù)庫只讀賬號(hào),用于獲取數(shù)據(jù)庫表模式及全量數(shù)據(jù)(大小寫敏感且具有只讀權(quán)限)密碼只讀帳戶對(duì)應(yīng)的密碼數(shù)據(jù)自動(dòng)同步是
30、否自動(dòng)同步用戶數(shù)據(jù)庫的增量數(shù)據(jù)授權(quán)對(duì)OpenSearch獲取RDS數(shù)據(jù)做授權(quán)操作,在用戶設(shè)置了IP白名單的情況下,OpenSearch會(huì)將所用IP添加到用戶白名單中。若不勾選授權(quán),則連接 數(shù)據(jù)不會(huì)高亮顯示。OpenSearch的全量數(shù)據(jù)過濾方式為將過濾條件直接增加在SQL語句的where條件中, 如果應(yīng)用無需使用增量數(shù)據(jù),過濾條件數(shù)值部分可以替換為表達(dá)式,與數(shù)據(jù)庫中支持的表達(dá)式一致。,OpenSearch會(huì)嘗試連接,并根據(jù)具體情形給出結(jié)果提示:提示信息處理方法當(dāng)前用戶的當(dāng)前區(qū)域沒有此RDS實(shí)例請(qǐng)檢查實(shí)例ID是否正確并確保用戶RDS服務(wù)所在的區(qū)域與OpenSearch應(yīng)用的區(qū)域保持一致;如果一致
31、但仍然報(bào)錯(cuò)可提工連接RDS服務(wù)失敗請(qǐng)檢查RDS連接串是否正確包括實(shí)例ID、數(shù)據(jù)庫名、用戶名、密碼當(dāng)前RDS數(shù)據(jù)庫下沒有此表請(qǐng)檢查表名填寫是否正確/RDS數(shù)據(jù)庫中是否確實(shí)存在該表,OpenSearch會(huì)自動(dòng)獲取表字段。注意事項(xiàng)RDS支持內(nèi)/外網(wǎng)的域名切換,OpenSearch對(duì)rds數(shù)據(jù)獲取均不收取任何流量費(fèi)用;OpenSearch目前僅支持從主庫拉取全量數(shù)據(jù),建議用戶根據(jù)業(yè)務(wù)繁忙情況選擇低峰期數(shù)據(jù)導(dǎo)入操作。對(duì)于RDS表中的datetime及timestamp類型系統(tǒng)會(huì)自動(dòng)轉(zhuǎn)化為毫秒數(shù),請(qǐng)將對(duì)應(yīng)OpenSearch字段類 型設(shè)置為INT64。truncate命令暫不支持,需要?jiǎng)h除數(shù)據(jù)請(qǐng)使用del
32、ete命令;系統(tǒng)要求主鍵是唯一的,對(duì)于分表情況下,如果各個(gè)分表主鍵有重復(fù),可以對(duì)OpenSearch主鍵字段 使用StringCatenateExtractor插件,來源字段為pk,$table(其中pk請(qǐng)?zhí)鎿Q為rds表中主鍵字段,$table為默認(rèn)系統(tǒng)變量,表示當(dāng)前表名)拼接字符為-(可自定義)。如rds表為my_table_0,主 鍵字段值為123456,那么拼接后的新主鍵值為123456-my_table_0。OSS配置開放存儲(chǔ)服務(wù)(OpenStorageService,OSS),是阿里云對(duì)外提供的海量、安全和高可靠的云存儲(chǔ)服務(wù)(了解OSS )。OpenSearch中的一個(gè)表可以直接從O
33、SS的一個(gè)bucket中同步以下兩種類型的數(shù)據(jù):文本內(nèi)容(content),Meta內(nèi)容。入口有兩個(gè):創(chuàng)建應(yīng)用結(jié)構(gòu):應(yīng)用創(chuàng)建完畢后,通過數(shù)據(jù)同步進(jìn)行修改:選擇待同步的bucketbucket名稱,從中選擇一個(gè)需要同步的bucket即可。需要注意 的是:opensearch只能同步當(dāng)前阿里云帳號(hào)所擁有的oss bucket,不能同步其他帳號(hào)的,如果下拉框中找不到相應(yīng)的bucket名稱,需要檢查用來登陸OpenSearch和OSS兩個(gè)系統(tǒng)的阿里云帳號(hào)是否相同。配置Object前綴Object前綴是一個(gè)過濾器。如果配置了Object前綴,OpenSearch只會(huì)同步OSS Bucket中全路徑的前綴
34、為配置字符串的Object,該Bucket中其他的數(shù)據(jù)不會(huì)進(jìn)行同步。在很多場(chǎng)景下,前綴可以對(duì)應(yīng)為OSS Bucket中的文件夾(但不完全相同)。選擇讀取Object信息在下拉框中選擇同步到OpenSearch中的是Object的內(nèi)容,還是Object的Meta。主鍵id默認(rèn)為文件在oss中的路徑+object_name,所以類型必須是string!Object內(nèi)容目前OpenSearch支持從多種文本格式的文件中抽取文件的文本內(nèi)容及一些相關(guān)信息,如PDF文檔,Microsoft-Word文檔等。目前支持的格式有:word, excel, ppt, json, xml, csv, pdf, ht
35、ml, text,其中word類型包括*.doc, *.docx,*.odt;excel類型包括:*.xls*.xlsx*.ods,ppt類型包括:*.ppt*.pptx*.ppsx。對(duì)于json、xml、html這幾類數(shù)據(jù),抽取時(shí)會(huì)去除所有標(biāo)簽,保留所有的內(nèi)容文本,并去除過多的連續(xù)空白。如果只想同步某一種類型的文檔,也可以選擇文件類型過濾器。(除了content字段,其他都是來自于文件屬性,如創(chuàng)建、修改時(shí)間、作 者等等),為了方便大家使用文檔內(nèi)容抽取的功能,在創(chuàng)建應(yīng)用的時(shí)候,建議直接選擇文檔類模板。因此應(yīng) 用結(jié)構(gòu)必須至少包含以上字段,并進(jìn)行了正確地配置,才能夠成功同步數(shù)據(jù)。ObjectMet
36、a如果在PutObject的時(shí)候,攜帶以x-oss-meta-為前綴的參數(shù),則視為user meta,比如x-oss-meta-location。一個(gè)Object可以有多個(gè)類似的參數(shù),但所有的user meta總大小不能超過2k。如果在PutObject的時(shí)候,攜帶以x-oss-meta-為前綴的參數(shù),則視為user meta,比如x-oss-meta-location。一個(gè)Object可以有多個(gè)類似的參數(shù),但所有的user meta總大小不能超過2k。Object的user meta,去除x-oss-meta-前綴之后,即為meta的名字,PutObject時(shí)可以上傳其值。OpenSearc
37、h在同步ObjectMeta的時(shí)候會(huì)將該Object的所有user meta 同步過來,因此,在創(chuàng)建APP時(shí),需要?jiǎng)?chuàng)建與meta名字相同的field,并正確設(shè)置其值的類型,才能成功同步數(shù)據(jù)。在一個(gè)bucket中,統(tǒng)一為所有的object添加了如下幾個(gè)meta: x-oss-meta-user在一個(gè)bucket中,統(tǒng)一為所有的object添加了如下幾個(gè)meta: x-oss-meta-userx-oss-meta-titlex-oss-meta-subject則需要對(duì)應(yīng)地,在OpenSearch的應(yīng)用中創(chuàng)建如下幾個(gè)field: usertitle subject選擇數(shù)據(jù)同步如果需要在OSS Bu
38、cket中的Object有變化時(shí),自動(dòng)同步到OpenSearch的應(yīng)用中,可以選擇數(shù)據(jù)變化時(shí)自動(dòng)同步。最后,點(diǎn)擊保存按鈕,將OSS的配置保存下來。一定要在OSS Bucket 屬性中,開啟Logging配置,數(shù)據(jù)變化時(shí)才能成功自動(dòng)同步.且由于OSS的Log文件每小時(shí)產(chǎn)生一次,因此OpenSearch同步的頻率也是小時(shí)級(jí)的。注意事項(xiàng)對(duì)于暫停狀態(tài)的應(yīng)用的定時(shí)索引重建會(huì)被block,直到用戶重新啟動(dòng),才會(huì)進(jìn)行。索引重建對(duì)于用戶上傳的數(shù)據(jù)(包括通過各個(gè)數(shù)據(jù)源的同步過來的數(shù)據(jù))OpenSearch會(huì)在系統(tǒng)中保存一份鏡像。如果 有涉及到應(yīng)用結(jié)構(gòu)變更、或者需要導(dǎo)入全量數(shù)據(jù)的情況下,需要進(jìn)行索引重建操作。目前
39、支持兩種索引重建方 式:1)手動(dòng)索引重建(一般用于修改應(yīng)用結(jié)構(gòu)或者導(dǎo)入全量用戶數(shù)據(jù)時(shí)使用);2)每日定時(shí)任務(wù)(一般在odps等數(shù)據(jù)源每天導(dǎo)入全量用戶數(shù)據(jù)使用)。定時(shí)任務(wù)與手動(dòng)任務(wù)的邏輯完全相同,只需要多配置一個(gè)每日同步的時(shí)間。需要注意的是:定時(shí)任務(wù)每天只會(huì) 執(zhí)行一次,一旦當(dāng)天成功執(zhí)行了一次,無論如何修改配置,都不會(huì)再次執(zhí)行。在索引重建任務(wù)開始之前,需要選擇任務(wù)的類型:只重建索引:對(duì)應(yīng)于應(yīng)用結(jié)構(gòu)有變化的情況,如果選擇了這個(gè)操作,僅僅會(huì)重新構(gòu)建應(yīng)用的全部索引,不會(huì)拉取數(shù)據(jù)源中的數(shù)據(jù)重新導(dǎo)入數(shù)據(jù)并重建索引:一般對(duì)應(yīng)于首次向OpenSearch中導(dǎo)入全量數(shù)據(jù)的場(chǎng)景,或任何需要從數(shù) 據(jù)源中拉取全部數(shù)據(jù),
40、并重建索引的場(chǎng)景。在重新導(dǎo)入數(shù)據(jù)并重建索引的任務(wù)中,可以選擇一張或 多張表進(jìn)行同步(也就是說不必須是全部的表)。OpenSearch會(huì)根據(jù)所選擇的各個(gè)表之間的關(guān)系自 動(dòng)確定導(dǎo)入順序。任務(wù)成功創(chuàng)建之后,會(huì)顯示任務(wù)執(zhí)行的進(jìn)度,點(diǎn)擊進(jìn)度條,可以查看進(jìn)度詳情。如果任務(wù)失敗,可以在應(yīng)用列 表頁中的錯(cuò)誤日志中查詢失敗原因。應(yīng)用高級(jí)配置搜索相關(guān)性配置排序表達(dá)式(Ranking Formula)允許用戶為應(yīng)用自定義搜索結(jié)果排序方式,通過在查詢請(qǐng)求中指定表達(dá)式來對(duì)結(jié)果排序。排序表達(dá)式支持基本運(yùn)算(算術(shù)運(yùn)算、關(guān)系運(yùn)算、邏輯運(yùn)算、位運(yùn)算、條件運(yùn)算)、數(shù)學(xué)函數(shù)和 排序特征(feature)等。Open Search對(duì)
41、于幾種經(jīng)典的應(yīng)用(如論壇、資訊等)提供了表達(dá)式模板,用戶可根據(jù)自己數(shù)據(jù)的特點(diǎn),選擇合適的表達(dá)式模板,并以此為基礎(chǔ)進(jìn)行修改,生成自己的表達(dá)式。在進(jìn)行相關(guān)性排序之前,首先要了解下系統(tǒng)排序策略:通過query等子句找到符合條件的文檔后,會(huì)進(jìn)入排序 階段(具體參見sort子句),如果未指定sort子句或者sort子句中顯式指定了RANK,那么都將進(jìn)入到相關(guān)性算 分階段。搜索引擎對(duì)于檢索性能要求比較高,為此,系統(tǒng)開放了兩階段排序過程:粗排和精排。粗排即是海選,從檢索 結(jié)果中快速找到質(zhì)量高的文檔,取出TOP N個(gè)結(jié)果再按照精排進(jìn)行精細(xì)算分,最終返回最優(yōu)的結(jié)果給用戶。由此可見,粗排對(duì)性能影響比較大,精排對(duì)最
42、終排序效果影響比較大。因此,粗排要求盡量簡(jiǎn)單有效,只提取精 排中的關(guān)鍵因子即可。如何設(shè)計(jì)粗精排公式要取決于實(shí)際搜索場(chǎng)景的需求,最佳實(shí)踐-功能篇有個(gè)相關(guān)性實(shí)戰(zhàn)的文章,較詳細(xì)介紹 了在幾個(gè)典型場(chǎng)景下如何來思考和設(shè)計(jì)排序因子,大家可以參考。流程演示主界面:添加新粗排表達(dá)式或編輯現(xiàn)有表達(dá)式添加新精排表達(dá)式或編輯現(xiàn)有表達(dá)式編輯表達(dá)式內(nèi)容完成基本運(yùn)算運(yùn)算運(yùn)算符說明一元運(yùn)算-負(fù)號(hào),功能為對(duì)某個(gè)表達(dá)式的值取負(fù)值,如-1, -max(width)。算數(shù)運(yùn)算+, -, *, /如width / 10關(guān)系運(yùn)算=,!= , =, =400邏輯運(yùn)算and ,or,!如width=400 and height= 300,
43、 !(a 1 and b 2)位運(yùn)算&, |,如 3 & (price pubtime) + (price | pubtime)條件運(yùn)算if(cond, thenValue, elseValue)如果cond的值非0,則該if表達(dá)式的實(shí)際值為thenValue,否則為elseValue。如if(2, 35)的值為3,if(0, 3, 5)的值為5。in 運(yùn)算i in value1, value2, , valuen如果i的值在集合value1, value2, , valuen中出現(xiàn),則該表達(dá)式值為1,否則為0。例如: 2 in 2, 4, 6的值為1,3in 2, 4, 6的值為0。數(shù)學(xué)函數(shù)
44、函數(shù)說明max(a, b)取a和b的最大值。min(a, b)取a和b的最小值。ln(a)對(duì)a取自然對(duì)數(shù)。log2(a)對(duì)a取以2為底的對(duì)數(shù)。log10(a)對(duì)a取以10為底的對(duì)數(shù)。sin(a)正弦函數(shù)。cos(a)余弦函數(shù)。tan(a)正切函數(shù)。asin(a)反正弦函數(shù)acos(a)反余弦函數(shù)atan(a)反正切函數(shù)。ceil(a)對(duì)a向上取整,如ceil(4.2)為5。floor(a)對(duì)a向下取整,如floor(4.6)為4。sqrt(a)對(duì)a開方,如sqrt(4)為2。pow(a,b)返回a的b次冪,如pow(2, 3)為8。now()返回當(dāng)前時(shí)間,自Epoch (00:00:00 UT
45、CJanuary 11970)開始計(jì)算,單位是秒。random()返回0, 1間的一個(gè)隨機(jī)值。內(nèi)置特征函數(shù)提供了豐富的內(nèi)置特征函數(shù),如LBS類、文本類、時(shí)效類等,可以用在排序表達(dá)式中,相互組合實(shí) 現(xiàn)強(qiáng)大的相關(guān)性排序效果。搜索相關(guān)性函數(shù)插件function可以用在filter子句作為過濾和篩選條件,而返回值為數(shù)值型的fuction在sort子句中,用來做排序。其中函數(shù)參數(shù)出現(xiàn)的文檔字段必須勾選可過濾。功能feature可以用到排序表達(dá)式中(出于性能的考慮,大部分僅支持精排表達(dá)式),可以通過各種語法及語句 的組合得到強(qiáng)大的排序功能。其中函數(shù)參數(shù)出現(xiàn)的文檔字段必須勾選可搜索.兼容特征及函數(shù)項(xiàng)兼有fu
46、nction及feature的功能,可以同時(shí)在filter、sort及formula表達(dá)式中使用。其中函數(shù)參數(shù)出現(xiàn)的文檔字 段必須勾選可過濾distance : 獲取兩個(gè)點(diǎn)之間的球面距離。一般用于LBS的距離計(jì)算。詳細(xì)用法distance(longitude_a, latitude_a, longtitude_b, latitude_b, output_name)參 數(shù) 點(diǎn)A的經(jīng)度值。支持的參數(shù)類型為浮點(diǎn)型的字段名latitude_a:點(diǎn)A的緯度值。支持的參數(shù)類型為浮點(diǎn)型的字段名longtitude_b:點(diǎn)B的經(jīng)度值。支持的參數(shù)類型為浮點(diǎn)型的字段名;或者為用戶查詢串中kvpairs子 句中設(shè)置
47、的一個(gè)字段名(其值需要為浮點(diǎn)數(shù))點(diǎn)B的緯度值。支持的參數(shù)類型為浮點(diǎn)型的字段名;或者為用戶查詢串中kvpairs子句中 設(shè) 置 的 一 個(gè) 字 段 名 ( 其 值 需 要 為 浮 點(diǎn) 數(shù) ) outputname值得到,如果不需要,可 以不指定。返 回 值 適用場(chǎng)景場(chǎng)景1:查找距離用戶(120.34256,30.56982)10公里內(nèi)的外婆家(lon,lat為文檔中記錄商家的經(jīng) 緯度值,需要勾選可過濾),并按照距離由近及遠(yuǎn)排序;query=default:外婆家&filter=distance(lon,lat,120.34256,30.56982)0in_polygon : 判斷某個(gè)點(diǎn)是否在某個(gè)
48、多邊形范圍內(nèi),一般用于配送范圍判斷詳細(xì)用法in_polygon(polygon_field, user_x_coordinate, user_y_coordinate, has_multi_polygons=false)參數(shù)polygon_field: 表示商家配送范圍的字段名,類型必須為DOUBLE_ARRAY, 字段值依次為配送多邊形有序定點(diǎn)的x,y坐標(biāo)(先x后y),頂點(diǎn)務(wù)必保證有序(順時(shí)針、逆時(shí)針均可)!!如果有多個(gè)(N個(gè))配送多邊形,則第一個(gè)值表示多邊形個(gè)數(shù),第2N+1的值表示后續(xù)每個(gè)多邊形的頂點(diǎn)數(shù)(不是坐 標(biāo)數(shù)哦?。贜+2值開始依次表示各多邊形的頂點(diǎn)x,y坐標(biāo)(N的值域?yàn)?,50
49、)user_x_coordinate: 用戶的x坐標(biāo), double類型user_y_coordinate: 用 戶 的 y 坐 標(biāo) , double 類 型has_multi_polygons:表示polygon_filed是否包含多個(gè)獨(dú)立的多邊形需要判斷。默認(rèn)為false,表 示只有單一的多邊形。返回值int,在多邊形內(nèi)返回第幾個(gè)多邊形匹配, 否則返回0。適用場(chǎng)景場(chǎng)景1:判斷用戶是否在商家的配送范圍。如商家配送范圍的字段為coordinates, 用戶位置坐標(biāo)為(120.307234, 39.294245),則過濾在配送范圍內(nèi)的商家查詢可寫為:query=default:美食&filter
50、=in_polygon(coordinates, 120.307234, 39.294245)0注意事項(xiàng)最多支持50個(gè)多邊形,超過則跳過該文檔的計(jì)算;不支持有孔多邊形,如環(huán);不支持多個(gè)分離部分的多邊形;坐標(biāo)個(gè)數(shù)為0,表示沒有坐標(biāo),返回0;坐標(biāo)個(gè)數(shù)為奇數(shù)個(gè),則認(rèn)為數(shù)據(jù)有誤,返回0;用戶點(diǎn)位于多邊形邊上,則認(rèn)為匹配成功,返回為1(或具體多邊形下標(biāo))。多邊形插件計(jì)算量較大,對(duì)查詢性能有影響,建議盡量控制頂點(diǎn)個(gè)數(shù),具體值請(qǐng)根據(jù)自己 實(shí)際情況進(jìn)行測(cè)試得出。in_query_polygon : 判斷文檔中指定的點(diǎn)是否在用戶指定的多邊形范圍內(nèi)詳細(xì)用法in_query_polygon(polygon_key,
51、 doc_point)參數(shù)polygon_key:kvpairs子句中定義的用戶參數(shù)key,多邊形頂點(diǎn)存儲(chǔ)在對(duì)應(yīng)的value中。類型必須為DOUBLE_ARRAY,字段值依次為配送多邊形有序定點(diǎn)的x,y坐標(biāo)(先x后y),頂點(diǎn)務(wù)必保證有序(順 時(shí)針、逆時(shí)針均可)!坐標(biāo)之間用逗號(hào)分隔,格式為:xA,yA,xB,Yb。支持多個(gè)多邊形,多邊形與 多邊形之間通過分號(hào)(;)分隔。 doc_point:類型必須為DOUBLE_ARRAY,表示需要判斷的點(diǎn)。只包含兩個(gè)值,依次為點(diǎn)的x,y坐標(biāo)返 回 值 0適用場(chǎng)景場(chǎng)景1:搜索銀泰商圈(xA,yA,xB,Yb,xC,Yc;xD,yD,xE,yE,xF,yF,xG
52、,yG)的外婆家,商家位置存放在point 字 段 中 point)0&kvpairs=polygons:xA,yA,xB,Yb,xC,Yc;xD,yD,xE,yE,xF,yF,xG,yGmulti_attr : 返回?cái)?shù)組字段指定位置的值詳細(xì)用法multi_attr(field, pos, default_value=0|)參數(shù)field: 查詢的字段名,必須為ARRAY數(shù)組類型,且必須勾選可過濾pos: 整形常數(shù)或整形字段,需要勾選可過濾,下標(biāo)從0開始default_value: 可選,字符串常量。表示如果指定pos的值不存在時(shí),返回default_value返回值類型和field保持一致適
53、用場(chǎng)景場(chǎng)景1:商品有多個(gè)價(jià)格市場(chǎng)價(jià)、折扣價(jià)、銷售價(jià),存到prices字段中。查詢銷售價(jià)小于1000的手 query=deault:手機(jī)&filter=multi_attr(price,2)10的店鋪有哪些?因?yàn)閎it_struct返回的是下標(biāo),所以他可以和multi_attr函數(shù)一起配合使用,取另外一個(gè)array 類 型 字 段 對(duì) 應(yīng) 下 標(biāo) 的 值 。 如 該 例 , 可 以 在 查 詢 語 句 中 使 用 : filter=multi_attr(store, bit_struct(dispatch_time,0-31,32-63, equal,$1,840, equal,$2,930,
54、and,$3,$4)10dispatch_time是文檔中有一個(gè)多值INT64的字段,用于存儲(chǔ)商戶的配送時(shí)間。將時(shí)間轉(zhuǎn)換為從當(dāng)天014點(diǎn)到15:30表示為(840,930) dispatch_time的時(shí)間段分別對(duì)應(yīng),表示該時(shí)間段的庫存 量。注意事項(xiàng)6. 更多介紹請(qǐng)參考 這里特征feature項(xiàng)功能feature可以用到排序表達(dá)式中(大部分僅支持精排表達(dá)式),可以通過各種語法及語句的組合得到強(qiáng)大的 排序功能。其中函數(shù)參數(shù)出現(xiàn)的文檔字段必須勾選可搜索.static_bm25 : 靜態(tài)文本相關(guān)性,用于衡量query與文檔的匹配度詳細(xì)用法static_bm25()參數(shù)無返 回 值 值域?yàn)?,1適用場(chǎng)
55、景場(chǎng)景1:在粗排中指定文本分;在粗排表達(dá)式中指定static_bm25()注意事項(xiàng)- 可以用在粗排表達(dá)式timeliness : 時(shí)效分,用于衡量文檔的新舊程度詳細(xì)用法timeliness(pubtime)參 數(shù) int32或int64,單位為秒。返 回 值 值越大表示時(shí)效性越好。若大于當(dāng)前時(shí)間則返回0。適用場(chǎng)景場(chǎng)景1:在精排中指定create_timestamp字段的時(shí)效性; 在粗排表達(dá)式中指定timeliness(create_timestamp)注意事項(xiàng)pubtime字段必須勾選可過濾;可以用在粗排和精排表達(dá)式。timeliness_ms : 時(shí)效分,用于衡量文檔的新舊程度詳細(xì)用法tim
56、eliness_ms(pubtime)參 數(shù) int32或int64,單位為毫秒。返 回 值 值越大表示時(shí)效性越好。若大于當(dāng)前時(shí)間則返回0。適用場(chǎng)景場(chǎng)景1:在精排中指定create_timestamp字段的時(shí)效性; 在粗排表達(dá)式中指定timeliness_ms(create_timestamp)注意事項(xiàng)pubtime字段必須勾選可過濾;可以用在粗排和精排表達(dá)式normalize :歸一化函數(shù),根據(jù)不同的算分將數(shù)值歸一化至0, 1場(chǎng)景概述相關(guān)性計(jì)算過程中,一篇doc的好壞需要從不同的維度衡量。而各個(gè)維度的分?jǐn)?shù)值域可能不同,比如 網(wǎng)頁點(diǎn)擊數(shù)可能是成百上千萬,網(wǎng)頁的文本相關(guān)性分?jǐn)?shù)在0, 1之間,它們
57、之間沒有可比性。為了在 公式中使用這些元素,需要將不同的分?jǐn)?shù)歸一化至同一個(gè)值域區(qū)間,而normalize為這種歸一化提供 了一種簡(jiǎn)便的方法。normlize支持三種歸一化方法:線性函數(shù)轉(zhuǎn)化、對(duì)數(shù)函數(shù)轉(zhuǎn)化、反正切函數(shù)轉(zhuǎn) 化。根據(jù)傳入?yún)?shù)的不同,normalize自動(dòng)選擇不同的歸一化方法。如果只指定value參數(shù),normalize使用反正切函數(shù)轉(zhuǎn)化,如果指定了value和max參數(shù),normalize使用對(duì)數(shù)函數(shù)轉(zhuǎn)化,如果指定了value、max和min,normalize使用線性函數(shù)轉(zhuǎn)化。詳 細(xì) 用 法 : normalize(value, max, min)參 數(shù) 類型的浮點(diǎn)數(shù),該值可以來自
58、文檔中的字段或者其他表達(dá)式max:value 的 最 大 值 , 可 選 , 支 持 double 類 型 的 浮 點(diǎn) 數(shù) min:value的最小值,可選,支持double類型的浮點(diǎn)數(shù)返回值double,0, 1之間的值。適用場(chǎng)景場(chǎng)景1:對(duì)price字段做歸一化,但是不知道price的值域,可以使用如下公式進(jìn)行歸一化normalize(price)場(chǎng)景2:對(duì)price字段做歸一化,但是只知道price的最大值為100,可以使用如下公式進(jìn)行歸一化normalize(price, 100)場(chǎng)景3:對(duì)price字段做歸一化,并且知道price的最大值為100,最小值為1,可以使用如下公式進(jìn)行 歸一
59、化normalize(price, 100, 1)場(chǎng) 景 4: 將 distance 函 數(shù) 的 結(jié) 果 歸 一 化 至 0, 1 normalize(distance(longitude_in_doc, latitude_in_doc, longtitude_in_query, latitude_in_query)注意事項(xiàng)使用反正切函數(shù)進(jìn)行歸一化時(shí),如果value小于0,歸一化后的值為0使用對(duì)數(shù)函數(shù)進(jìn)行歸一化時(shí),max的值要大于1使用線性函數(shù)進(jìn)行歸一化時(shí),max要大于mingauss_decay,使用高斯函數(shù),根據(jù)數(shù)值和給定的起始點(diǎn)之間的距離,計(jì)算其衰減程度詳細(xì)用法gauss_decay(o
60、rigin, value, scale, decay, offset)參 數(shù) double類型的浮點(diǎn)數(shù)類型的浮點(diǎn)數(shù),該值可以來自用戶字段或者其他表達(dá)式scale:衰減程度,支持double類型的浮點(diǎn)數(shù) decay:當(dāng)距離為scale時(shí)的衰減程度,支持double類型的浮點(diǎn)數(shù),可選,默認(rèn)值為0.000001 offset:當(dāng)距離大于offset時(shí)才開始計(jì)算衰減程度,支持double類型的浮點(diǎn)數(shù),可選,默認(rèn)值為0返回值返回值為double,區(qū)間為0, 1適用場(chǎng)景場(chǎng)景1:查找距離用戶最近的酒店,按照距離由近到遠(yuǎn)排序,并且認(rèn)為距離小于100m的酒店不用做 longitude_in_doc和latitu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)品攝影拍攝合同范本
- 健身房私教合同范本
- 2025年度新型綠色建筑租賃合同范本
- 出兌房屋合同范例
- ppp合同范例實(shí)例
- 保管勞動(dòng)合同范例
- 2025年度城市綜合體規(guī)劃設(shè)計(jì)咨詢合同
- 廣東省x景區(qū)旅游開發(fā)項(xiàng)目可行性研究報(bào)告
- 2025年中國新風(fēng)量檢測(cè)儀行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 買債權(quán)居間合同范本
- 綠城桃李春風(fēng)推廣方案
- 對(duì)使用林地的監(jiān)管事中事后監(jiān)督管理
- 體質(zhì)健康概論
- 檔案管理流程優(yōu)化與效率提升
- 2023高考語文實(shí)用類文本閱讀-新聞、通訊、訪談(含答案)
- 人工智能在商場(chǎng)應(yīng)用
- (完整word版)大格子作文紙模板(帶字?jǐn)?shù)統(tǒng)計(jì))
- 高考語文復(fù)習(xí):小說閱讀主觀題題型探究-解讀《理水》
- revit簡(jiǎn)單小別墅教程
- 第二章 第一節(jié) CT設(shè)備基本運(yùn)行條件
- 藍(lán)印花布鑒賞課件
評(píng)論
0/150
提交評(píng)論