示例1
通过BoolQuery进行And条件查询。/**
* 通过BoolQuery进行And条件查询。
* @param client
*/
public static void andQuery(SyncClient client){
/**
* 查询条件一:RangeQuery,Col_Long的列值大于3。
*/
RangeQuery rangeQuery = new RangeQuery();
rangeQuery.setFieldName("Col_Long");
rangeQuery.greaterThan(ColumnValue.fromLong(3));
/**
* 查询条件二:MatchQuery,Col_Keyword的列值要匹配"hangzhou"。
*/
MatchQuery matchQuery = new MatchQuery();
matchQuery.setFieldName("Col_Keyword");
matchQuery.setText("hangzhou");
SearchQuery searchQuery = new SearchQuery();
{
/**
* 构造一个BoolQuery,设置查询条件为必须同时满足"查询条件一"和"查询条件二"。
*/
BoolQuery boolQuery = new BoolQuery();
boolQuery.setMustQueries(Arrays.asList(rangeQuery, matchQuery));
searchQuery.setQuery(boolQuery);
//searchQuery.setGetTotalCount(true);//设置返回匹配的总行数。
SearchRequest searchRequest = new SearchRequest("sampleTable", "sampleSearchIndex", searchQuery);
//通过设置columnsToGet参数可以指定返回的列或返回所有列,如果不设置此参数,则默认只返回主键列。
//SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
//columnsToGet.setReturnAll(true); //设置为返回所有列。
//columnsToGet.setColumns(Arrays.asList("ColName1","ColName2")); //设置为返回指定列。
//searchRequest.setColumnsToGet(columnsToGet);
SearchResponse resp = client.search(searchRequest);