--- title: "Search Data in Tables" url: https://docs.catalyst.zoho.com/en/sdk/flutter/v2/cloud-scale/search/search-data-in-tables/ description: "Catalyst Search enables data searching in the indexed columns of the tables in the Data Store. It allows you to perform powerful searches through volumes of data with a single search query." last_updated: 2025-11-19T15:07:41Z service: Cloud Scale type: general related_links: - name: "Data Store" url: /en/cloud-scale/help/data-store/introduction - name: "Search" url: /en/cloud-scale/help/search-integration/introduction - name: "Search - API" url: /en/api/code-reference/cloud-scale/zcql/execute-zcql-query/#ExecuteZCQLQuery --- # Search [Catalyst Search](https://docs.catalyst.zoho.com/en/cloud-scale/help/search-integration/introduction) enables data searching in the indexed columns of the tables in the [Data Store](https://docs.catalyst.zoho.com/en/cloud-scale/help/data-store/introduction). It allows you to perform powerful searches through volumes of data with a single search query. > **Note:** The columns you search for data must be indexed. You can enable search indexing for a column while [creating it](https://docs.catalyst.zoho.com/en/cloud-scale/help/data-store/columns/#create-a-new-column) or by [editing it](https://docs.catalyst.zoho.com/en/cloud-scale/help/data-store/columns/#edit-a-column) later. ### Search Data in Tables To search for data in a table in a specific pattern, you must specify the table name as the identifier, and add the columns to be searched in. The columns can be added to an array and the array must be passed to the `search()` method along with the keywords to be searched through an instance of the class `ZCatalystSearchOptions`. You must construct the search pattern to pass to the `search()` method before you execute a search operation, as shown in the code syntax below. ```bash Future<(APIResponse, Map<String, dynamic>?)> search(ZCatalystSearchOptions searchOptions) ``` **Parameters**: * `searchOptions`: The instance of the `ZCatalystSearchOptions` class to be passed to the `search()` method You can create the instance for `searchOptions` in the following way: ```bash ZCatalystSearchOptions(searchText: String, List<ZCatalystSearchOptions.TableColumns>) .addSortColumn(tableName: String,columnName: String) .setDisplayColumns(displayTableColumns: List<ZCatalystSearchOptions.TableColumns>) .setSearchColumns(searchTableColumns: List<ZCatalystSearchOptions.TableColumns>) .setSearchPattern(pattern: ZCatalystSearchOptions.SearchPattern) ``` A sample code snippet of a search execution is shown below: ```bash List<TableColumn> searchTableColumns = []; //Create an array TableColumn tableColumn = TableColumn('Products'); //Specify the table //Specify the columns to be searched in tableColumn.addColumn('Title'); tableColumn.addColumn('Category'); searchTableColumns.add(tableColumn); //Add the columns in the array ZCatalystSearchOptions searchOptions = ZCatalystSearchOptions('Official', searchTableColumns); //Pass the keyword and the array to be searched try{ var (_, searchResult) = await ZCatalystApp.getInstance().search(searchOptions); print(searchResult); } on ZCatalystException catch (ex) { print('Search Query Result :'); } ```