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

virtual attribute子句

子句說明

目前,引擎支持在distinct,aggregate,filter等多種子句中指定多種類型的expression。例如query:config=cluster:daogou&&query=電腦&&filter=price+MailPrice(distance)<80,在filter子句中price代表物品的基本價格,MailPrice是用戶定義的一個function插件,用來計算郵寄物品的費用,二者之和代表購買該物品所需花費的整體費用

下面再進一步考慮如下幾種使用場景:

* 如果該query中又增加了distinct,aggregate子句,這些子句中都用到了price+MailPrice(distance)這個expression,那么就需要用戶將該expression重復寫多遍,這樣是不是有點不夠靈活?
* 如果用戶想在算分插件中獲取price+MailPrice(distance)的值呢?
* 如果用戶想在搜索結果中返回price+MailPrice(distance)的計算結果呢?
* 如果用戶想將price+MailPrice(distance)的計算結果填充到summary里面呢?

virtual attribute功能的引入有效的解決了上面四個問題

子句語法

virtual attribute子句的語法如下:

virtual_attribute='va_description [{';' va_description}]
va_description := va_name ':' va_expression
va_name := IDENTIFIER
va_expression := arithmetic_expression | logical_expression | function_expression

其中,va_name為va_expression代表的表達式的名稱,在ha3的distinct,filter,aggregate,attribute,sort各個子句中凡是用到va_expression的地方可以直接用va_name代替。在virtual_attribute中也可以使用先前聲明過的va_name

示例:

1. config=cluster:daogou&&query=電腦&&virtual_attribute=va1:price+MailPrice(distance)&&filter=va1<80
2. config=cluster:daogou&&query=電腦&&virtual_attribute=va1:price+MailPrice(distance);va2:disCountPrice(va1)&&attribute=id,va1,va2&&sort=+va2

注意事項

  • 用戶需要保證virtual attribute的聲明順序是拓撲有序的。目前引擎內部沒有對用戶聲明的virtual attributes做拓撲排序,這一點需要用戶自己保證。例如:virtual_attribute=va2:disCountPrice(va1);va1:price+MailPrice(distance),這種聲明方式就是不合法的,需要對調va1和va2的聲明位置

  • virtual attribute不支持聲明常量表達式諸如:va1=123,va2="abc",va3=1+2,這幾種類型的聲明方式都是不支持的