1. listQuery = {
    2. 'is_use': True,
    3. 'value': '选择'
    4. }
    1. def search(self,
    2. listQuery = {},
    3. limit = 30, next_token_str = ''):
    4. recover_next_token = next_token_str.encode('utf-8')
    5. must_queries = []
    6. for column_name, column_dict in listQuery.items():
    7. # 遍历所有的查询条件
    8. if isinstance(column_dict, (dict)):
    9. if column_dict['is_use']:
    10. # 如果用户选中了此筛选条件
    11. if column_dict['type'] == 'TermQuery':
    12. must_queries.append(TermQuery(column_name, column_dict['value']))
    13. if column_dict['type'] == 'WildcardQuery':
    14. must_queries.append(WildcardQuery(column_name,'*'+column_dict['value']+'*'))
    15. if column_dict['type'] == 'RangeQuery':
    16. must_queries.append(RangeQuery(field_name=column_name,
    17. range_from=column_dict['range_from'],
    18. range_to=column_dict['range_to']
    19. ))
    20. bool_query = BoolQuery(
    21. must_queries=must_queries
    22. )
    23. if next_token_str != '':
    24. # 第2此进行搜索查询
    25. SearchQueryInstance = SearchQuery(bool_query,
    26. next_token=recover_next_token,
    27. limit=limit,
    28. get_total_count=True)
    29. else:
    30. # 首次进行搜索查询
    31. SearchQueryInstance = SearchQuery(bool_query,
    32. next_token=recover_next_token,
    33. # sort=Sort(sorters=[FieldSort('create_time',SortOrder.DESC)]),
    34. limit=limit,
    35. get_total_count=True)
    36. search_response = self.__OTSClientInstance__.search(
    37. self._table_name_, self._init_index_,
    38. SearchQueryInstance,
    39. ColumnsToGet(return_type=ColumnReturnType.ALL)
    40. )
    41. rows = search_response.rows
    42. next_token = search_response.next_token
    43. total_count = search_response.total_count
    44. return_rows = []
    45. for s_row in rows:
    46. s_row = table_store_row_to_dict(s_row)
    47. return_rows.append(s_row)
    48. # 解码函数
    49. next_token_str = next_token.decode('utf-8')
    50. return return_rows, next_token_str, total_count