閱讀715 返回首頁    go windows


過濾filter子句__搜索子句介紹_API參考手冊_開放搜索-阿裏雲

子句說明

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

語法說明

過濾條件格式為:filed=value

  • 過濾條件支持>、<、=、<=、>=、!=等常見條件運算符;以及+、-、*、/、&、^、| 等算術運算符;
  • 過濾條件可以配置多個,通過AND、OR及()的邏輯運算關係(必須大寫!)進行連接。

注意事項

  1. filter為非必選子句;
  2. 在filter中出現的字段必須在定義應用結構的時候配置為屬性字段;
  3. float、double類型因為精度問題無法做精確相等的判斷,如有這種場景請,如有這種場景請改用<及>來實現。
  4. literal類型的字段值必須要加雙引號,支持所有的關係運算,不支持算術運算。
  5. 排序特征function函數也可以在filter子句中使用;
  6. literal類型字段的過濾僅支持=、!=運算,含義為包含、不包含,不支持>、<等關係運算

示例

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

  1. query=default:'浙大' AND category_search:'2' //category字段創建了一個索引字段category_search
  2. //或者
  3. query=default:'浙大'&&filter=category=2

小說應用中有個string_array字段tags,表示小說風格標簽:“宮廷”、“懸疑恐怖”、“言情”,需要查詢包含“甄嬛傳”且標簽包含“宮廷”的文檔:

  1. query=default:'甄嬛傳'&&filter=tags="宮廷"

電商應用中有個int32的字段hit(點擊)和sale(銷量),及int64的字段create_time,需要查詢包含“連衣裙”且銷量與點擊的和乘上rate(偏移率)超過10000,創建時間早於1402345600的文檔:

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

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

  1. query=default:'美食'&&filter=in_polygon(coordinates, 120.307234, 39.294245)>0

最後更新:2016-11-23 16:04:03

  上一篇:go 查詢query子句__搜索子句介紹_API參考手冊_開放搜索-阿裏雲
  下一篇:go 排序sort子句__搜索子句介紹_API參考手冊_開放搜索-阿裏雲