import com.google.appengine.api.search.SortExpression; //導入依賴的package包/類protected SortOptions.Builder buildSortOptions(List<OrderComponent> order) { SortOptions.Builder sortOptions = SortOptions.newBuilder(); for (OrderComponent sort : order) { String fieldName = getEncodedFieldName(sort.getField()); SortExpression.Builder expression = SortExpression.newBuilder().setExpression(fieldName); expression = expression.setDirection(sort.isAscending() ? SortExpression.SortDirection.ASCENDING : SortExpression.SortDirection.DESCENDING); IndexType indexType = metadata.getIndexType(sort.getField()); if (IndexType.SmallDecimal == indexType || IndexType.BigDecimal == indexType) { expression = expression.setDefaultValueNumeric(sort.isDescending() ? IntLow : IntHigh); } else if (IndexType.Date == indexType) { expression = expression.setDefaultValueDate(sort.isDescending() ? DateLow : DateHigh); } else { expression = expression.setDefaultValue(sort.isDescending() ? StringLow : StringHigh); } sortOptions = sortOptions.addSortExpression(expression); } return sortOptions;}
import com.google.appengine.api.search.SortExpression; //導入依賴的package包/類@Overridepublic SortOptions apply(Query<?> query) { SortOptions.Builder sortOptions = SortOptions.newBuilder(); query.getSort().ifPresent(sort -> { for (Order order : sort) { SearchFieldMetadata searchFieldMetadata = searchMetadata.getField(query.getResultType(), order.getProperty()); SortExpression.Builder expression = SortExpression.newBuilder() .setExpression(searchFieldMetadata.getEncodedName()) .setDirection(order.getDirection().isAscending() ? ASCENDING : DESCENDING); applyDefaultValue(order, searchFieldMetadata.getIndexType(), expression); sortOptions.addSortExpression(expression.build()); } }); return sortOptions.build();}
import com.google.appengine.api.search.SortExpression; //導入依賴的package包/類private void applyDefaultValue(Order order, IndexType indexType, SortExpression.Builder expression) { if (indexType == NUMBER) { expression.setDefaultValueNumeric(order.isAscending() ? MAXIMUM_NUMBER_VALUE : MINIMUM_NUMBER_VALUE); } else if (indexType == DATE) { expression.setDefaultValueDate(order.isAscending() ? MAXIMUM_DATE_VALUE : MINIMUM_DATE_VALUE); } else { expression.setDefaultValue(order.isAscending() ? HIGH_STRING_CHAR : ""); }}
import com.google.appengine.api.search.SortExpression; //導入依賴的package包/類private Results<ScoredDocument> doSearch() { String indexName = SEARCH_INDEX; // [START search_with_options] try { // Build the SortOptions with 2 sort keys SortOptions sortOptions = SortOptions.newBuilder() .addSortExpression(SortExpression.newBuilder() .setExpression("price") .setDirection(SortExpression.SortDirection.DESCENDING) .setDefaultValueNumeric(0)) .addSortExpression(SortExpression.newBuilder() .setExpression("brand") .setDirection(SortExpression.SortDirection.DESCENDING) .setDefaultValue("")) .setLimit(1000) .build(); // Build the QueryOptions QueryOptions options = QueryOptions.newBuilder() .setLimit(25) .setFieldsToReturn("model", "price", "description") .setSortOptions(sortOptions) .build(); // A query string String queryString = "product: coffee roaster AND price < 500"; // Build the Query and run the search Query query = Query.newBuilder().setOptions(options).build(queryString); IndexSpec indexSpec = IndexSpec.newBuilder().setName(indexName).build(); Index index = SearchServiceFactory.getSearchService().getIndex(indexSpec); Results<ScoredDocument> result = index.search(query); return result; } catch (SearchException e) { // handle exception... } // [END search_with_options] return null;}
import com.google.appengine.api.search.SortExpression; //導入依賴的package包/類@Testpublic void testSortOptions() { for (SortExpression.SortDirection direction : SortExpression.SortDirection.values()) { SortExpression sortExpression = SortExpression.newBuilder() .setExpression("numfield") .setDirection(direction) .setDefaultValueNumeric(9999) .build(); SortOptions sortOptions = SortOptions.newBuilder() .addSortExpression(sortExpression) .build(); QueryOptions options = QueryOptions.newBuilder() .setFieldsToReturn("numfield", "datefield") .setSortOptions(sortOptions) .build(); Query.Builder queryBuilder = Query.newBuilder().setOptions(options); Results<ScoredDocument> results = index.search(queryBuilder.build("")); double pre = -9999; if (direction.equals(SortExpression.SortDirection.DESCENDING)) { pre = 9999; } for (ScoredDocument doc : results) { assertEquals(2, doc.getFieldNames().size()); for (Field numField : doc.getFields("numfield")) { if (direction.equals(SortExpression.SortDirection.DESCENDING)) { assertTrue(pre > numField.getNumber()); } else { assertTrue(pre < numField.getNumber()); } pre = numField.getNumber(); } } }}
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
阿里dns114dns哪個好?阿里DNS:服務器地址:223.5.5.5 和 223.6.6.6 它的特點是穩定,快速,智能。114DNS:服務器地址:114.114.114.114 它的特點是高速,穩定,可靠,無劫持??茨枰?。首選dns和備用dns是什么?首選DNS和備用DNS都是一種域名系統,在首選DNS正常的情況下,就用首選DNS地址。當首選DNS服務器出現問題的時候,那么系統會自動啟用...
碧歐泉護膚品效果怎么樣?碧歐泉護膚品效果不錯。碧歐泉是歐萊雅集團旗下的高級護膚品牌。其所有產品都含有獨特的礦泉活細胞因子生命浮游生物?活精,這也是他們的核心組成部分。碧歐泉補水很好,性價比還是很高的。歐碧泉好用嗎?蘭蔻的護膚品都是針對中年人的皮膚問題,適合年輕人的卻很少。但是,你可以放心使用他的化妝品。顏色時尚而輕盈,尤其是高睫毛絕對是NO1。全球首款高睫毛由蘭蔻生產。我們同歲。試過很多化妝品,我...
可以播放RMVB的手機播放器?接受手機端播放mp3rmvb格式文件的播放器大體有:暴風影音、百度影音、moboplayer、RockPlayer等等。就像比較比較就是喜歡的是RockPlayer。哪款品牌手機能播放RM格式的歌曲?很歉疚的告訴你,這個問題大部分很不太好辦到。更不用說手機,連現在絕大多數的PMP播放器,基本是都不支持什么rm或rmvb的格式。幫我推薦:在用相關轉換成軟件,轉換成成意見...