A method comprising: at a virtual machine running on a virtualization server and configured to run virtual machine sessions each including a user app and roaming user profile, with each roaming user profile comprising a user search index database and other parts of the user profile, in an initial virtual machine session for a user running on the virtual machine, loading a roaming user profile for the user in the initial virtual machine session from a provisioning service via a search service at the virtualization server, and loading a user app and associated plugin, generating a user search index database for the user for inclusion in the roaming user profile, and registering the user search index database with the search service, populating the other parts of the roaming user profile during the initial virtual machine session, indexing the roaming user profile in the user search index database using the other part of the user profile, and updating the user search index database via the plugin based upon user profile changes from the user app during the initial virtual machine session; and in a subsequent virtual machine session for the user running on the virtualization server, loading the user search index database for the user and obtaining the index for the roaming user profile therefrom from the provisioning service via the search service; wherein generating the user search index database for the user comprises partitioning a central desktop database into the user search index database. at a virtual machine running on a virtualization server and configured to run virtual machine sessions each including a user app and roaming user profile, with each roaming user profile comprising a user search index database and other parts of the user profile, in an initial virtual machine session for a user running on the virtual machine, loading a roaming user profile for the user in the initial virtual machine session from a provisioning service via a search service at the virtualization server, and loading a user app and associated plugin, generating a user search index database for the user for inclusion in the roaming user profile, and registering the user search index database with the search service, populating the other parts of the roaming user profile during the initial virtual machine session, indexing the roaming user profile in the user search index database using the other part of the user profile, and updating the user search index database via the plugin based upon user profile changes from the user app during the initial virtual machine session; and loading a roaming user profile for the user in the initial virtual machine session from a provisioning service via a search service at the virtualization server, and loading a user app and associated plugin, generating a user search index database for the user for inclusion in the roaming user profile, and registering the user search index database with the search service, populating the other parts of the roaming user profile during the initial virtual machine session, indexing the roaming user profile in the user search index database using the other part of the user profile, and updating the user search index database via the plugin based upon user profile changes from the user app during the initial virtual machine session; and in a subsequent virtual machine session for the user running on the virtualization server, loading the user search index database for the user and obtaining the index for the roaming user profile therefrom from the provisioning service via the search service; wherein generating the user search index database for the user comprises partitioning a central desktop database into the user search index database.