A computer-implemented method comprising: identifying images (510, 515) associated with a user, wherein each of the images is identified as at least one of captured by a user device associated with the user, stored on the user device associated with the user, or stored in cloud storage associated with the user; for each of the images, determining one or more labels, wherein the one or more labels are based on at least one of metadata or a primary annotation; generating a mapping of the one or more labels to one or more confidence scores, wherein the one or more confidence scores indicate an extent to which the one or more labels apply to corresponding images (510, 515), wherein an index is generated by; associating the one or more confidence scores to the one or more labels associated with the corresponding images, and indexing the corresponding images, the one or more labels, and the one or more confidence scores, wherein the index is a graph where the corresponding images represent nodes in the index and edges in the index are based on the one or more labels associated with the corresponding images, and wherein each node includes confidence scores, which indicate an extent to which a label applies to the corresponding image; interacting with the user to obtain identifying information (520, 525) that is used to categorize one or more of the images (510, 515) by providing graphical data that displays a first person that is identified in at least a threshold number of the images (510, 515) and requesting the user to identify the first person, wherein the index is updated if the user identifies the first person; and receiving a search query that includes user-generated search terms from the user, wherein the index is used for autocompleting the search query with labels indexed by the index; categorizing the user-generated search terms of the search query, wherein categories of the user-generated search terms include a date, a time, a time range, a location, an altitude, or a direction, and searching for images that match the categorized search terms by using the index. identifying images (510, 515) associated with a user, wherein each of the images is identified as at least one of captured by a user device associated with the user, stored on the user device associated with the user, or stored in cloud storage associated with the user; for each of the images, determining one or more labels, wherein the one or more labels are based on at least one of metadata or a primary annotation; generating a mapping of the one or more labels to one or more confidence scores, wherein the one or more confidence scores indicate an extent to which the one or more labels apply to corresponding images (510, 515), wherein an index is generated by; associating the one or more confidence scores to the one or more labels associated with the corresponding images, and indexing the corresponding images, the one or more labels, and the one or more confidence scores, wherein the index is a graph where the corresponding images represent nodes in the index and edges in the index are based on the one or more labels associated with the corresponding images, and wherein each node includes confidence scores, which indicate an extent to which a label applies to the corresponding image; interacting with the user to obtain identifying information (520, 525) that is used to categorize one or more of the images (510, 515) by providing graphical data that displays a first person that is identified in at least a threshold number of the images (510, 515) and requesting the user to identify the first person, wherein the index is updated if the user identifies the first person; and receiving a search query that includes user-generated search terms from the user, wherein the index is used for autocompleting the search query with labels indexed by the index; categorizing the user-generated search terms of the search query, wherein categories of the user-generated search terms include a date, a time, a time range, a location, an altitude, or a direction, and searching for images that match the categorized search terms by using the index.