Show TOC

Searching for WorkspacesLocate this document in the navigation structure

Use

You can search and retrieve workspaces according to the specified search criteria, as well as define various parameters for the presentation of search results, such as sort order or number of results to display on one page.

The following example illustrates searching for workspaces using the SearchControl object:

private void searchForWorkspace(IPortalComponentRequest request, String inputQuery)
    {
    	// Retrieve the workspace directory
    	IWorkspacesRuntime workspacesRuntime = RuntimeFactory.getWorkspacesRuntime();
    	IWorkspaceDirectory workspaceDirectory = (IWorkspaceDirectory) workspacesRuntime.getService(IWorkspaceDirectory.class);

    	SearchControl searchControl = new SearchControl();

   	// Define the workspace permission policies to include in search
		PermissionPolicy[] permissionPolicies = new PermissionPolicy[2];
		permissionPolicies[0] = PermissionPolicy.PUBLIC;
		permissionPolicies[1] = PermissionPolicy.RESTRICTED;
		searchControl.setPermissionPolicies(permissionPolicies);

		// Define the workspace categories to include in search
		WorkspaceCategory[] categories = new WorkspaceCategory[1];
		WorkspaceCategory category = new WorkspaceCategory("categoryKey");
		category.setValueIDs(new String["valueId1", "valueId2"]);
		categories[1] = category;

		// Define the sort order of search results
		searchControl.setSortBy(SortBy.NAME_DESCENDING);

		// Define the maximum number of workspaces to return as search results 
		searchControl.setMaxResults(5000);

		//Set a SearchFilter object that defines additional search parameters
		SearchFilter searchFilter = new SearchFilter();
		searchFilter.setLocale(request.getLocale());
		searchFilter.setOwner("Denise Smith");
		searchControl.setSearchFilter(searchFilter);

		// Search for workspaces according to the specified parameters
		ISearchResults searchResults = workspaceDirectory.search(searchControl);

		// Return an array of workspaces that match the search criteria
		WorkspaceInfo[] sharedWorskpaces = searchResults.getWorkspacesInfo();
    }