日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

filter子句

子句說明

過濾功能支持用戶根據查詢條件,篩選出用戶感興趣的文檔。會在通過query子句查找到的文檔進行進一步的過濾,以返回最終所需結果。

語法說明

過濾條件格式為:field=value

  • 過濾條件支持>、<、=、<=、>=、!=、in/notin 等常見條件運算符;以及+、-、*、/、&、^、| 等算術運算符;

  • 過濾條件可以配置多個,通過AND、OR及()的邏輯運算關系(必須大寫!)進行連接。

注意事項

  1. filter為非必選子句。

  2. 在filter中出現的字段必須在定義應用結構的時候配置為屬性字段。

  3. FLOAT、DOUBLE類型因為精度問題無法做精確相等的判斷,如有這種場景請改用>和<來實現。

  4. LITERAL類型的字段值,在filter子句中必須要使用雙引號(否則會報錯:6135,常量表達式類型錯誤),支持所有的關系運算,不支持算術運算。

  5. 排序功能——功能函數項中的函數,可以在filter子句中使用;如:distance函數。

  6. LITERAL類型字段的過濾僅支持=、!=運算,含義為等于、不等于,不支持>、<等關系運算。(LITERAL字段類型不分詞,需要完全匹配)

  7. in/notin 判斷字段值是否(不)在指定列表中,支持INT、LITERAL及FLOAT、DOUBLE類型,( 不支持ARRAY、TEXT、模糊分詞系列類型 ),詳細用法參考 in和notin

  8. 分詞字段類型無法配置為屬性,例如 TEXT,SHORT_TEXT等都不支持,只支持數值字段類型及不分詞字段類型配置為屬性,例如INT,INT_ARRAY,FLOAT,FLOAT_ARRAY,DOUBLE,DOUBLE_ARRAY,LITERAL,LITERAL_ARRAY這些字段類型都支持。

功能性函數使用

  • distance: 獲取兩個點之間的球面距離。一般用于LBS的距離計算。

舉例

查找距離用戶(120.34256,30.56982)10公里內的外婆家(lon,lat為文檔中記錄商家的經緯度值,需要配置為屬性字段):

query=default:'外婆家'&&filter=distance(lon,lat,"120.34256","30.56982")<10
  • in_polygon: 判斷某個點是否在某個多邊形范圍內,一般用于配送范圍判斷

舉例

判斷用戶是否在商家的配送范圍。如商家配送范圍的字段為coordinates, 用戶位置坐標為 (120.307234, 39.294245),過濾在配送范圍內的商家:

query=default:'美食'&&filter=in_polygon(coordinates, 120.307234, 39.294245)>0
  • in_query_polygon: 判斷文檔中指定的點是否在用戶指定的多邊形范圍內

舉例

搜索銀泰商圈(xA,yA,xB,Yb,xC,Yc;xD,yD,xE,yE,xF,yF,xG,yG)的外婆家,商家位置存放在point字段中

query=default:'外婆家'&&filter=in_query_polygon("polygons",point)>0&&kvpairs=polygons:xA\,yA\,xB\,Yb\,xC\,Yc;xD\,yD\,xE\,yE\,xF\,yF\,xG\,yG
  • bit_struct: 將INT_ARRAY字段值進行自定義分組并允許對分組值進行指定operation計算

舉例

查詢給定時間段在營業的店鋪有哪些? 假定用戶文檔中有一個int64_array類型的字段open_time,每個值表示一段營業時間,將int64的高32位表示起始時間,低32位表示結束時間,如果要查詢下午14點到15:30點營業的店鋪,可以將時間轉換為從當天0點開始,按分鐘為單位的時間段, 則下午14點到15:30表示為(840,930):

filter=bit_struct(open_time, "0-31,32-63","overlap,$1,$2,840,930")!=-1
  • fieldlen: 獲取LITERAL類型字段長度

舉例

返回用戶名usr_name不為空的文檔

query=default:'關鍵詞'&&filter=fieldlen(usr_name)>0
  • in/notin: 判斷字段值是否(不)在指定列表中

舉例

查詢文檔中包含"iphone"且type(int類型)為1或2或3的文檔:

query=default:'iphone'&&filter=in(type, "1|2|3")

查詢文檔中包含"iphone"且type(int32類型)不為1或2或3的文檔:

query=default:'iphone'&&filter=notin(type, "1|2|3")

舉例

商品有多個價格[市場價、折扣價、銷售價],存到prices字段中。查詢銷售價小于1000的手機:

query=default:'手機'&&filter=multi_attr(price,2)<1000

示例

  1. 應用中有一個int32字段category,值分別為1(news),2(bbs)等,需要查詢分類category為2(bbs)且包含"浙大"的文檔:

     query=default:'浙大' AND category_search:'2'   //category字段創建了一個索引字段category_search
      //或者
     query=default:'浙大'&&filter=category=2
  2. 小說應用中有個LITERAL_ARRAY字段tags,表示小說風格標簽:"宮廷"、"懸疑恐怖"、"言情",需要查詢包含"甄嬛傳"且標簽包含"宮廷"的文檔:

     query=default:'甄嬛傳'&&filter=tags="宮廷"
  3. 電商應用中有個int32的字段hit(點擊)和sale(銷量),及int64的字段create_time,需要查詢包含"連衣裙"且銷量與點擊的和乘上rate(偏移率)超過10000,創建時間早于1402345600的文檔:

     query=default:'連衣裙'&&filter=(hit+sale)*rate>10000 AND create_time<1402345600