Unified multi-index search
The unified multi-index search system addresses inefficiencies in combined retrieval methods by using a sparse and dense index with augmented queries and compressed indices, reducing resource consumption and improving relevance in document retrieval.
Patent Information
- Application Number
- PCT/CN2024/082848
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-21
- Publication Date
- 2025-09-25
AI Technical Summary
Existing document retrieval methods, whether term-based sparse retrieval or semantic-based dense retrieval, face inefficiencies in computing and resource usage, particularly in ranking score calculations and disk storage, when both methods are combined for a single query.
A unified multi-index search approach that combines a sparse index with a dense index, utilizing a pretrained neural network to generate an augmented query and compressing the dense index, enabling efficient intersection operations and reduced resource consumption by sorting and ranking only high-quality objects.
Significantly reduces computing and disk resource usage by optimizing ranking score calculations and storage, while enhancing search relevance through augmented queries and compressed indices, resulting in an efficient multi-index search system.
Smart Images

Figure CN2024082848_25092025_PF_FP_ABST
Abstract
Description
UNIFIED MULTI-INDEX SEARCHBACKGROUND
[0001] With the development of computer technology and network technology, people can quickly acquire information they need through the Internet. Applications such as search engines may help users easily access information on the network. For example, a user may enter a query into a search box of a search engine. The search engine may retrieve documents relevant to the query from a pre-built index. The search engine may then rank these documents and present a series of highest ranked documents to the user via a search result page.SUMMARY
[0002] This Summary is provided to introduce a selection of concepts that are further described below in the Detailed Description. It is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
[0003] Embodiments of the present disclosure propose a method, apparatus and computer program product for multi-index search. A query may be received. A sparse index may be obtained. A dense index may be obtained. A first set of posting lists relevant to the query may be searched from the sparse index. A second set of original posting lists relevant to the query may be searched from the dense index. For each original posting list in the second set of original posting lists, a plurality of postings in the original posting list may be sorted according to identifiers contained therein, to obtain a second set of posting lists. An intersection operation may be performed on the first set of posting lists and the second set of posting lists, to obtain an intersection result. A search result for the query may be produced, the search result including highest-ranked objects among the intersection result.
[0004] It should be noted that the above one or more aspects comprise the features hereinafter fully described and particularly pointed out in the claims. The following description and the drawings set forth in detail certain illustrative features of the one or more aspects. These features are only indicative of the various ways in which the principles of various aspects may be employed, and this disclosure is intended to include all such aspects and their equivalents.BRIEF DESCRIPTION OF THE DRAWINGS
[0005] The disclosed aspects will hereinafter be described in connection with the appended drawings that are provided to illustrate and not to limit the disclosed aspects.
[0006] FIG. 1 illustrates an exemplary process for multi-index search according to an embodiment of the present disclosure.
[0007] FIG. 2 illustrates an exemplary sparse index according to an embodiment of the present disclosure.
[0008] FIG. 3A illustrates an exemplary dense index according to an embodiment of the present disclosure.
[0009] FIG. 3B illustrates an exemplary compressed dense index according to an embodiment of the present disclosure.
[0010] FIG. 4 illustrates an exemplary process for performing an intersection operation on posting lists according to an embodiment of the present disclosure.
[0011] FIG. 5A to FIG. 5G illustrates an example of performing an intersection operation on posting lists according to an embodiment of the present disclosure.
[0012] FIG. 6 illustrates an exemplary process for generating an augmented query corresponding to a query according to an embodiment of the present disclosure.
[0013] FIG. 7 illustrates an exemplary process for pretraining a query vector generation network according to an embodiment of the present disclosure.
[0014] FIG. 8 is a flowchart of an exemplary method for multi-index search according to an embodiment of the present disclosure.
[0015] FIG. 9 illustrates an exemplary apparatus for multi-index search according to an embodiment of the present disclosure.
[0016] FIG. 10 illustrates another exemplary apparatus for multi-index search according to an embodiment of the present disclosure.DETAILED DESCRIPTION
[0017] The present disclosure will now be discussed with reference to several example implementations. It is to be understood that these implementations are discussed only for enabling those skilled in the art to better understand and thus implement the embodiments of the present disclosure, rather than suggesting any limitations on the scope of the present disclosure.
[0018] Existing document retrieval methods may be divided into two categories, i.e., a term-based sparse retrieval method and a semantic-based dense retrieval method. The term-based sparse retrieval method may use sparse vectors to represent a query and documents, and mainly rely on term matching between the query and the documents to perform retrieval. The semantic-based dense retrieval method may encode a query and documents into dense vectors, and perform retrieval based on semantic matching between the query and the documents by using a search algorithm such as an Approximate Nearest Neighbor (ANN) search algorithm. The term-based sparse retrieval method and the semantic-based dense retrieval method have respective advantages and disadvantages. For a given query, performing both the term-based sparse retrieval and the semantic-based dense retrieval to produce a search result for the query might be desirable.
[0019] Embodiments of the present disclosure propose unified multi-index search. A query may be received. The query may be of any modality. For example, the query may include text, audio, image, etc. that may be represented as a term sequence. A sparse index containing a plurality of posting lists may be obtained. The sparse index may be a term-based inverted index. Each posting list in the sparse index contains a term and a plurality of postings, each posting containing an identifier of an object including the term. The object may be of any modality. For example, the object may include document, music, image, movie, video, etc. A dense index containing a plurality of original posting lists may be obtained. The dense index may be a semantic-based inverted index. Each original posting list in the dense index contains a centroid and a plurality of postings, each posting containing an identifier of an object close to the centroid and an object vector of the object. Herein, an object vector refers to a vector of an object. Next, a first set of posting lists relevant to the query may be searched from the sparse index. A second set of original posting lists relevant to the query may be searched from the dense index. For each original posting list in the second set of original posting lists, a plurality of postings in the original posting list may be sorted according to identifiers contained therein, to obtain a second set of posting lists. Subsequently, an intersection operation may be performed on the first set of posting lists and the second set of posting lists, to obtain an intersection result. Herein, an intersection operation refers to an operation for obtaining common or intersected elements in multiple sets. The intersection result may contain a plurality of objects whose identifiers appear in both the first set of posting lists and the second set of posting lists. An object whose identifier appears in both the first set of posting lists and the second set of posting lists can be considered as a high-quality object. The plurality of objects in the intersection result are ranked by their ranking scores. For an object, its ranking score is computed during obtaining the intersection result, e.g., after determining that the object is a high-quality object. A search result for the query may be produced. The search result may include highest-ranked objects among the intersection result. In the above process, the intersection operation is performed after sorting postings in the original posting lists searched from the dense index, and the ranking score calculations are conducted only for the objects in the intersection result. The technical effects of the above approach are that the ranking score calculations that consume a large amount of computing and disk resources can be significantly reduced, thereby enabling an efficient multi-index search.
[0020] In an aspect, the embodiments of the present disclosure propose to generate an augmented query corresponding to the query through a pretrained neural network. The augmented query may contain a term relevant to a term in the query and exclude a redundant term in the query. Further, the first set of posting lists from the sparse index may be obtained through performing term-match with the augmented query. The technical effect of the above approach is that posting lists that are more relevant to the query can be obtained during the search process. In addition, the pretrained neural network may generate a high-dimensional vector of the query. Herein, a high-dimensional vector of the query is referred to as a query high-dimensional vector. The query high-dimensional vector may include at least one weight corresponding to at least one term. A weight corresponding to a term may be associated with semantic similarity between the term and the query. Such weights may be used for computing ranking scores of objects when obtaining the intersection result. The technical effect of the above approach is that a ranking score that accurately reflects relevance between an object and the query can be computed.
[0021] In another aspect, the embodiments of the present disclosure propose to compress the dense index through removing object vectors from the plurality of original posting lists in the dense index, to obtain a compressed dense index. Further, an object vector of an object may be represented by a centroid vector of a centroid of a posting list where the object is located. Herein, a centroid vector refers to a vector of a centroid. The technical effect of the above approach is that the disk resources for storing the dense index can be significantly reduced. In addition, when computing a score of an object based on a vector distance between an object vector of the object and a query vector of the query, the vector distance between the object vector and the query vector may be equal to the vector distance between the centroid vector and the query vector. Herein, a query vector refers to a vector of a query. Since the vector distance between the centroid vector and the query vector has been already computed when searching the second set of original posting lists relevant to the query from the dense index, the score of the object may be computed directly. The technical effect of the above approach is that the computing resources for the heavy vector distance calculations can be significantly reduced.
[0022] It should be appreciated that although the foregoing discussion and the following discussion may involve examples of multi-index search with two sets of posting lists searched from two indices, the embodiments of the present disclosure are not limited to this. Depending on actual application requirements, the multi-index search according to the embodiments of the present disclosure may be applied to any number of sets of posting lists searched from any number of indices. In addition, the multi-index search according to the embodiments of the present disclosure is a unified solution, which may be widely applied to any index as long as it conform to the posting-based format. As an example, the multi-index search according to the embodiments of the present disclosure is also applicable to an index based on a location or any other attribute of a query.
[0023] Various embodiments of the present disclosure will hereinafter be described in detail in connection with the appended drawings.
[0024] FIG. 1 illustrates an exemplary process 100 for multi-index search according to an embodiment of the present disclosure.
[0025] A query 102 may be received. The query 102 may be of any modality. For example, the query 102 may include text, audio, image, etc. that may be represented as a term sequence.
[0026] A sparse index 104 may be obtained. The sparse index 104 may be a term-based inverted index. FIG. 2 illustrates an exemplary sparse index 200 according to an embodiment of the present disclosure. The sparse index 200 contains a plurality of posting lists, e.g., a posting list 202, a posting list 204, a posting list 206, etc. Each posting list contains a term and a plurality of postings. Each posting contains an identifier (ID) of an object including the term. The object may be of any modality. For example, the object may include document, music, image, movie, video, etc. Each posting may also contain and a term frequency (TF) of the object. The term frequency indicates the number of times the term appears in the object. For example, the posting list 202 contains Term1, and postings (ID11, TF11) , (ID12, TF12) , (ID13, TF13) , etc. For the posting (ID11, TF11) , ID11 is an ID of an object including Term1, and TF11 is the number of times Term1 appears in the object. The plurality of postings in each posting list may be sorted by identifiers contained therein. It should be appreciated that the sparse index 200 illustrated in FIG. 2 is merely an example of the sparse index. Depending on actual application requirements, the sparse index may have any other data structure and may contain more or fewer elements.
[0027] Referring back to FIG. 1, a dense index 106 may obtained. The dense index 106 may be a semantic-based inverted index. The dense index 106 may be constructed through the following operations: partitioning object vectors as data points into a plurality of clusters; for each cluster, taking a data point in the cluster that minimizes the sum of squared distances from other data points to this data point as a centroid for the cluster; and organizing a centroid and other data points in the same cluster into a posting list, the centroid being a posting key of the posting list, thereby obtaining a plurality of posting lists corresponding to the plurality of clusters. The centroid may be considered as a virtual term.
[0028] FIG. 3A illustrates an exemplary dense index 300a according to an embodiment of the present disclosure. The dense index 300a contains a plurality of original posting lists, e.g., an original posting list 302, an original posting list 304, an original posting list 306, etc. It should be appreciated that the word “original” is only used to distinguish these posting lists from posting lists sorted by identifiers that will be described later. Each original posting list contains a centroid, and a plurality of postings. Each posting contains an identifier (ID) of an object close to the centroid and an object vector of the object. The object vector may be a dense vector. For example, the posting list 302 contains Centroid1, and postings (ID11, Vector11) , (ID12, Vector12) , (ID13, Vector13) , etc. For the posting (ID11, Vector11) , ID11 is an ID of an object close to Centroid1, and Vector11 is the object vector of the object. A plurality of postings in each original posting list may be sorted by vector distances between objects and a centroid of the original posting list. It should be appreciated that the dense index 300a illustrated in FIG. 3A is merely an example of the dense index. Depending on actual application requirements, the dense index may have any other data structure and may contain more or fewer elements.
[0029] Preferably, the dense index 106 may be compressed through removing object vectors from the plurality of original posting lists in the dense index 106, to obtain a compressed dense index. For example, if object vectors in a posting list are close to a centroid vector in the posting list, the object vectors may be removed from the posting list. In this case, the object vectors may be represented by the centroid vector. FIG. 3B illustrates an exemplary compressed dense index 300b according to an embodiment of the present disclosure. The compressed dense index 300b contains a plurality of original posting lists, e.g., an original posting list 352, an original posting list 354, an original posting list 356, etc. Compared with the dense index 300a in FIG. 3A, in the compressed dense index 300b, object vectors are removed from the posting lists. The technical effect of the above approach is that the disk resources for storing the dense index can be significantly reduced.
[0030] Referring back to FIG. 1, at 110, a first set of posting lists 112 relevant to the query 102 may be searched from the sparse index 104. The search at 110 may be conducted through perform term-match with the query 102. A posting list relevant to the query 102 may be a posting list containing a term that matches a term of the query 102. For example, referring to FIG. 2, if the query 102 contains Term1 and Term3, the first set of posting lists 112 relevant to the query 102 may include the posting list 202 and the posting list 206.
[0031] Preferably, an augmented query corresponding to the query 102 may be generated through a pretrained neural network. The augmented query may contain a term relevant to a term in the query and exclude a redundant term in the query. As an example, assuming that the query 102 is “a baseball cap” , the augmented query corresponding to this query might be “baseball cap sports” . The augmented query contains a term “sports” relevant to the term “baseball” in the query, and excludes the redundant term in the query, i.e., “a” . An exemplary process for generating an augmented query corresponding to a query will be described later in conjunction with FIG. 6. In the case where an augmented query corresponding to the query 102 is generated, at 110, a first set of posting lists 112 relevant to the augmented query may be searched from the sparse index. That is, the first set of posting lists 112 from the sparse index may be obtained through performing term-match with the augmented query.
[0032] Referring back to FIG. 1, at 120, a second set of original posting lists 122 relevant to the query 102 may be searched from the dense index 106. The search at 120 may be conducted through perform vector-match with the query 102. For example, techniques such as ANN search may be employed to search, from the dense index 106, centroids of which vectors are closest to a query vector of the query 102, thereby determining original posting lists relevant to the query 102.
[0033] In the case where the dense index 106 is compressed through removing object vectors from the plurality of original posting lists, the second set of original posting lists 122 relevant to the query 102 may be searched from the compressed dense index.
[0034] At 130, for each original posting list in the second set of original posting lists 122, a plurality of postings in the original posting list may be sorted according to identifiers contained therein, to obtain a second set of posting lists 132.
[0035] At 140, an intersection operation may be performed on the first set of posting lists 112 and the second set of posting lists 132, to obtain an intersection result 142. The intersection result 142 may contain a plurality of objects whose identifiers appear in both the first set of posting lists 112 and the second set of posting lists 132. An object whose identifier appears in both the first set of posting lists and the second set of posting lists can be considered as a high-quality object. The plurality of objects in the intersection result 142 are ranked by their ranking scores. For an object, its ranking score is computed during obtaining the intersection result 142, e.g., after determining that the object is a high-quality object. An exemplary process for performing the intersection operation will be described later in conjunction with FIG. 4.
[0036] A search result 144 for the query 102 may be produced. The search result 144 may include highest-ranked objects among the intersection result 142.
[0037] In the above process, the intersection operation is performed after sorting postings in the original posting lists searched from the dense index, and the ranking score calculations are conducted only for the objects in the intersection result. The technical effects of the above approach are that the ranking score calculations that consume a large amount of computing and disk resources can be significantly reduced, thereby enabling an efficient multi-index search.
[0038] It should be appreciated that the process 100 for multi-index search in FIG. 1 is merely an example of the process for multi-index search. Depending on actual application requirements, the steps in the process for multi-index search may be replaced or modified in any manner, and the process may comprise more or fewer steps. In addition, the specific order or hierarchy of the steps in the process 100 is merely exemplary, and the process for multi-index search may be performed in an order different from the described order.
[0039] FIG. 4 illustrates an exemplary process 400 for performing an intersection operation on posting lists according to an embodiment of the present disclosure. The process 400 may correspond to the step 140 in FIG. 1. The process 400 may be performed on a first set of posting lists searched from a sparse index and a second set of posting lists searched from a dense index. For each posting list in the first set of posting lists and the second set of posting lists, a plurality of postings in the posting list are sorted by identifiers contained therein.
[0040] At 402, a pointer may be assigned to each posting list in the first set of posting lists and the second set of posting lists. The pointer assigned to each posting may be initially pointed to the first identifier in the posting list.
[0041] At 404, a minimum identifier in identifiers currently pointed to by pointers may be identified from the first set of posting lists. The minimum identifier identified from the first set of posting lists may be referred to as a first minimum identifier, and denoted as c1.
[0042] At 406, a minimum identifier in identifiers currently pointed to by pointers may be identified from the second set of posting lists. The step 404 and the step 406 may be performed in any order. The minimum identifier identified from the second set of posting lists may be referred to as a second minimum identifier, and denoted as c2.
[0043] At 408, the first minimum identifier c1 may be compared with the second minimum identifier c2.
[0044] If it is determined at 408 that the first minimum identifier c1 is equivalent to the second minimum identifier c2, it means that c1 or c2 appears in both the first set of posting lists and the second set of posting lists. Accordingly, an object with the identifier c1 or c2 can be considered as a high-quality object. In this case, the process 400 may proceed to a step 410. At 410, a ranking score of an object with the first minimum identifier c1 or the second minimum identifier c2 may be computed. The ranking score of the object can measure relevance between the object and a query for which the first set of posting lists and the second set of posting lists are searched.
[0045] Firstly, a first score of the object may be computed.
[0046] In an implantation, the first score may be computed through employing, e.g., the BM25 algorithm. For example, the first score of the object may be computed based on relevance between each term of the query and the object, and a term frequency of the term in the query.
[0047] In another implementation, if an augmented query corresponding to the query is generated, the first score of the object may be computed based on relevance between each term in the augmented query and the object, and a weight of the term included in a query high-dimensional vector of the query.
[0048] Next, a second score of the object may be computed based on a vector distance between an object vector of the object and a query vector of the query. In the case where the dense index is compressed through removing object vectors from the plurality of original posting lists in the dense index, the object vector of the object may be represented by a centroid vector of a centroid of a posting list where the object is located. In this way, the vector distance between the object vector and the query vector may be equal to the vector distance between the centroid vector and the query vector. Since the vector distance between the centroid vector and the query vector has been already computed when searching the second set of original posting lists relevant to the query from the dense index, the second score of the object may be computed directly. The technical effect of the above approach is that the computing resources for the heavy vector distance calculations can be significantly reduced.
[0049] Subsequently, the ranking score of the object may be computed based on the first score and the second score. For example, the ranking score may be computed through weighted summing the first score and the second score.
[0050] At 412, the object with the first minimum identifier c1 or the second minimum identifier c2 may be added into an intersection result according to the ranking score of the object. An object having a higher ranking score may be added to the top of the intersection result.
[0051] At 414, pointers pointing to the first minimum identifier c1 or the second minimum identifier c2 may be shifted to a next identifier.
[0052] Alternatively, if it is determined at 408 that the first minimum identifier c1 is not equivalent to the second minimum identifier c2, the process 400 may proceed to a step 420. At 420, a maximum identifier in the first minimum identifier c1 and the second minimum identifier c2 may be identified. The maximum identifier may be denoted as cmax.
[0053] At 422, pointers pointing to identifiers less than the maximum identifier cmax may be shifted to a next identifier.
[0054] After the step 414 or the step 422, the process 400 proceeds to a step 430. At 430, it may be determined whether at least one set of posting lists has been traversed. If all posting lists in a set of posting lists have been traversed, it may be determined that the set of posting lists has been traversed.
[0055] If it is determined at 430 that none of the first set of posting lists and the second set of posting lists has been traversed, the process 400 returns to the step 404 and the step 406, and continues the subsequent steps.
[0056] If it is determined at 430 that at least one set of posting lists has been traversed, the intersection operation may stop and the process 400 ends at 432. At this point, the intersection result for the first set of posting lists and the second set of posting lists may be obtained. The intersection result contains a plurality of objects whose identifiers appear in both the first set of posting lists and the second set of posting lists. The plurality of objects in the intersection result are ranked by their ranking scores.
[0057] In the above process, the ranking score calculations are conducted only for the objects in the intersection result. The technical effects of the above approach are that the ranking score calculations that consume a large amount of computing and disk resources can be significantly reduced, thereby enabling an efficient multi-index search.
[0058] It should be appreciated that the process 400 in FIG. 4 is merely an example of the process for performing an intersection operation on posting lists. Depending on actual application requirements, the steps in the process for performing an intersection operation on posting lists may be replaced or modified in any manner, and the process may comprise more or fewer steps. In addition, the specific order or hierarchy of the steps in the process 400 is merely exemplary, and the process for performing an intersection operation on posting lists may be performed in an order different from the described order.
[0059] FIG. 5A to FIG. 5G illustrates an example of performing an intersection operation on posting lists according to an embodiment of the present disclosure.
[0060] Firstly, referring to FIG. 5A, a first set of posting lists and a second set of posting lists are illustrated. The first set of posting lists may be searched from a sparse index. As an example, the first set of posting lists contains list11 and list12. The second set of posting lists may be searched from a dense index. As an example, the second set of posting lists contains list21 and list22. For each posting list in the first set of posting lists and the second set of posting lists, a plurality of postings in the posting list are sorted by identifiers contained therein. For simplicity and clarity, only identifiers are illustrated in each posting list.
[0061] A pointer may be assigned to each posting list in the first set of posting lists and the second set of posting lists. The pointer assigned to each posting list may be initially pointed to the first identifier in the posting list. An identifier currently pointed to by a pointer in the list11 may be denoted as c11. An identifier currently pointed to by a pointer in the list12 may be denoted as c12. An identifier currently pointed to by a pointer in the list21 may be denoted as c21. An identifier currently pointed to by a pointer in the list22 may be denoted as c22. As illustrated, initially, c11 = c12 = c22 = 1, and c21 = 5.
[0062] A first minimum identifier c1 in identifiers currently pointed to by pointers may be identified from the first set of posting lists. At present, c1 = min (c11, c12) = 1.
[0063] Similarly, a second minimum identifier c2 in identifiers currently pointed to by pointers may be identified from the second set of posting lists. At present, c2 = min (c21, c22) = 1.
[0064] Since c1 = c2, a ranking score of an object with the identifier c1 or c2 may be computed, and the object may be added into an intersection result according to the ranking score of the object. As illustrated in FIG. 5B, a ranking score of the object with the identifier c1 or c2 may be computed. By way of example, the ranking score may be “4.4” . The object with the identifier “1” may be added into the intersection result. Also, pointers pointing to the first minimum identifier c1 or the second minimum identifier c2 may be shifted to a next identifier. As illustrated in FIG. 5B, for the list11 and the list12, the pointers are shifted to the identifier “2” ; for the list22, the pointer is shifted to the identifier “3” ; while for the list21, the pointer remains unchanged.
[0065] At present, c11 = c12 = 2, c21 = 5, and c22 = 3. Thus, c1 = min (c11, c12) = 2, c2 =min (c21, c22) = 3, and c1≠ c2. In this case, a maximum identifier cmax in the first minimum identifier c1 and the second minimum identifier c2 may be identified. That is, cmax = 3. Pointers pointing to identifiers less than the maximum identifier cmax may be shifted to a next identifier. Referring to FIG. 5C, for the list11, the pointer is shifted to the identifier “10” ; for the list12, the pointer is shifted to the identifier “5” ; while for the list21 and the list22, the pointers remain unchanged.
[0066] The above process may be repeated, thereby in FIG. 5D, the list22 has been traversed, while for the list11, the list12 and the list21, the pointers remain unchanged. Next, in FIG. 5E, it is identified that the identifier “5” appears in both the first set of posting lists and the second set of posting lists. A ranking score of an object with the identifier “5” may be computed. By way of example, the ranking score may be “4.8” . The object with the identifier “5” may be added into the intersection result, and placed before the object with the identifier “1” and the ranking score “4.4” .
[0067] In FIG. 5F, no new identifiers appearing in both the first set of posting lists and the second set of posting lists is identified. In FIG. 5G, the second set of posting lists has been traversed. The intersection operation stops, and the intersection result for the first set of posting lists and the second set of posting lists may be obtained. In this example, the intersection result contains two objects, that is, the object with the identifier “5” and the object with the identifier “1” .
[0068] In FIG. 5A to FIG. 5G, for simplicity and clarity, only two sets of posting lists are illustrated, and each set of posting lists contains only two posting list. It should be appreciated that the intersection operation proposed by the embodiments of the present disclosure can be applied to any number of sets of posting lists, each sets of posting lists containing any number of postings.
[0069] In order to further boost the search quality, the embodiments of the present disclosure propose to generate an augmented query corresponding to a received query through a pretrained neural network. The augmented query may contain a term relevant to a term in the query and exclude a redundant term in the query. The augmented query may be used for searching posting lists relevant to the query from the sparse index. FIG. 6 illustrates an exemplary process 600 for generating an augmented query corresponding to a query according to an embodiment of the present disclosure.
[0070] A set of terms of a query 602 may be obtained. The set of terms may be obtained through known techniques, such as tokenizing, removing punctuation, lowercasing, etc. For the query 602 which is not text, it can be first converted into text through, e.g., transcription, feature extraction, etc. The set of terms includes, e.g., a term 604-1 to a term 604-m, where m is the number of terms in the set of terms.
[0071] A query high-dimensional vector 612 of the query 602 may be generated through a pretrained query vector generation network 610 based on the set of terms of the query 602. The query vector generation network 610 includes a query encoder 620, a mapping layer 630 and an aggregation layer 640. An exemplary process for pretraining the query vector generation network will be described later in conjunction with FIG. 7.
[0072] A set of term low-dimensional vectors corresponding to the set of terms of the query may be generated through the query encoder 620. The set of term low-dimensional vectors includes, e.g., a term low-dimensional vector 622-1 to a term low-dimensional vector 622-m. Each term low-dimensional vector may be a vector with hundred dimensions. Each term low-dimensional vector is a term-level vector. The query encoder 620 may be a Transformer-based model, e.g., Bidirectional Encoder Representations from Transformers (BERT) model.
[0073] The set of term low-dimensional vectors may be mapping to a set of term high-dimensional vectors through the mapping layer 630. The set of term high-dimensional vectors includes, e.g., a term high-dimensional vector 632-1 to a term high-dimensional vector 632-m. Each term high-dimensional vector is in vocabulary size, e.g., with 30000 dimensions. The mapping layer 630 may map the set of term low-dimensional vectors to the set of term high-dimensional vectors with Masked Language Model (MLM) head.
[0074] The set of term high-dimensional vectors may be aggregated into the query high-dimensional vector 612 through the aggregation layer 640. The query high-dimensional vector 612 is in vocabulary size. The query high-dimensional vector 612 is a sentence-level vector. The query high-dimensional vector 612 may include at least one weight corresponding to at least one term. A weight corresponding to a term may be associated with semantic similarity between the term and the query 602. Such a weight may be referred to as a dynamic weight.
[0075] Next, the query high-dimensional vector 612 may be sparsified as a query sparse vector 652 through a sparsification module 650. The sparsification module 650 may retain a predetermined number of weights with highest values, while reducing other weights to 0. The predetermined number is denoted as n. n may be flexibly set, e.g., set to an integer between 5 and 10.
[0076] The query sparse vector 652 may be mapped to an augmented query 662. A set of terms, i.e., a term 660-1 to a term 660-n, may be determined based on the query sparse vector 652 through looking up the vocabulary. The set of terms may be combined into the augmented query 662. The augmented query 662 may contain a term relevant to a term in the query 602 and exclude a redundant term in the query 602. The augmented query 662 may be used for searching posting lists relevant to the query 602 from the sparse index. The technical effect of the above approach is that posting lists that are more relevant to the query 602 can be obtained during the search process.
[0077] In addition, the query vector generation network 610 may generate the query high-dimensional vector 612 of the query 602. The query high-dimensional vector 612 may include at least one weight corresponding to at least one term. A weight corresponding to a term may be associated with semantic similarity between the term and the query. Such weights may be used for computing ranking scores of objects when obtaining the intersection result. The technical effect of the above approach is that a ranking score that accurately reflects relevance between an object and the query can be computed.
[0078] It should be appreciated that the process 600 in FIG. 6 is merely an example of the process for generating an augmented query corresponding to a query. Depending on actual application requirements, the steps in the process for generating an augmented query may be replaced or modified in any manner, and the process may comprise more or fewer steps.
[0079] FIG. 7 illustrates an exemplary process 700 for pretraining a query vector generation network according to an embodiment of the present disclosure. A query vector generation network 710 in FIG. 7 may correspond to the query vector generation network 610 in FIG. 6. An object vector generation network 720 may have the same network structure with the query vector generation network 710, and share network parameters with the query vector generation network 710.
[0080] A query 702 may have a set of terms, including a term 704-1 to a term 704-f. The query vector generation network 710 may generate a query high-dimensional vector 712 of the query 702 based on the term 704-1 to the term 704-f.
[0081] An object 706 may be an object relevant to the query 702 or an object irrelevant to the query 702 labeled by humans. The object 706 may have a set of terms, including a term 708-1 to a term 708-k. The set of terms may be obtained through known techniques, such as tokenizing, removing punctuation, lowercasing, etc. For the object 706 which is not text, it can be first converted into text through, e.g., transcription, feature extraction, etc. The object vector generation network 720 may generate an object high-dimensional vector 722 of the object 706 based on the term 708-1 to the term 708-k.
[0082] Next, a similarity score 732 between the query high-dimensional vector 712 and the object high-dimensional vector 722 may be calculated through a similarity calculation module 730. As an example, the similarity calculation module 730 may calculate the similarity score 732 through performing a dot product operation on the query high-dimensional vector 712 and the object high-dimensional vector 722. If the object 706 is an object relevant to the query 702, the similarity score 732 should be high; while if the object 706 is an object irrelevant to the query 702, the similarity score 732 should be low.
[0083] Subsequently, a loss 742 corresponding to the similarity score 732 may be calculated through a loss calculation module 740. The loss calculation module 740 may calculate the loss 742 through various known loss functions, such as cross-entropy loss function, etc. The query vector generation network 710 and / or the object vector generation network 720 may be pretrained and optimized through minimizing the loss 742.
[0084] It should be appreciated that the process 700 in FIG. 7 is merely an example of the process for pretraining the query vector generation network. Depending on actual application requirements, the steps in the process for pretraining the query vector generation network may be replaced or modified in any manner, and the process may comprise more or fewer steps.
[0085] FIG. 8 is a flowchart of an exemplary method 800 for multi-index search according to an embodiment of the present disclosure.
[0086] At 810, a query may be received.
[0087] At 820, a sparse index containing a plurality of posting lists may be obtained, each posting list containing a term and a plurality of postings, each posting containing an identifier of an object including the term, and the plurality of postings being sorted by identifiers contained therein.
[0088] At 830, a dense index containing a plurality of original posting lists may be obtained, each original posting list containing a centroid and a plurality of postings, and each posting containing an identifier of an object close to the centroid and an object vector of the object.
[0089] At 840, a first set of posting lists relevant to the query may be searched from the sparse index.
[0090] At 850, a second set of original posting lists relevant to the query may be searched from the dense index.
[0091] At 860, for each original posting list in the second set of original posting lists, a plurality of postings in the original posting list may be sorted according to identifiers contained therein, to obtain a second set of posting lists.
[0092] At 870, an intersection operation may be performed on the first set of posting lists and the second set of posting lists, to obtain an intersection result, the intersection result containing a plurality of objects whose identifiers appear in both the first set of posting lists and the second set of posting lists.
[0093] At 880, a search result for the query may be produced, the search result including highest-ranked objects among the intersection result.
[0094] In an implementation, the method 800 may further comprise: generating an augmented query corresponding to the query, the augmented query containing a term relevant to a term in the query and excluding a redundant term in the query. The searching a first set of posting lists relevant to the query from the sparse index may comprise: searching a first set of posting lists relevant to the augmented query from the sparse index.
[0095] The generating an augmented query corresponding to the query may comprise: generating a set of term low-dimensional vectors corresponding to a set of terms of the query; mapping the set of term low-dimensional vectors to a set of term high-dimensional vectors; aggregating the set of term high-dimensional vectors into a query high-dimensional vector; sparsifying the query high-dimensional vector as a query sparse vector; and mapping the query sparse vector to the augmented query.
[0096] The query high-dimensional vector may include at least one weight corresponding to at least one term. A weight corresponding to a term may be associated with semantic similarity between the term and the query.
[0097] In an implementation, the method 800 may further comprise: compressing the dense index through removing object vectors from the plurality of original posting lists, to obtain a compressed dense index. The searching a second set of original posting lists relevant to the query from the dense index may comprise: searching a second set of original posting lists relevant to the query from the compressed dense index.
[0098] In an implementation, the performing an intersection operation on the first set of posting lists and the second set of posting lists may comprise: assigning a pointer to each posting list in the first set of posting lists and the second set of posting lists, the pointer initially pointed to the first identifier in the posting list; identifying, from the first set of posting lists, a first minimum identifier in identifiers currently pointed to by pointers; identifying, from the second set of posting lists, a second minimum identifier in identifiers currently pointed to by pointers; and in response to the first minimum identifier being equivalent to the second minimum identifier: computing a ranking score of an object with the first minimum identifier or the second minimum identifier; adding the object into the intersection result according to the ranking score; and shifting pointers pointing to the first minimum identifier or the second minimum identifier to a next identifier.
[0099] The computing a ranking score of an object with the first minimum identifier may comprise: computing a first score of the object, the computing a first score comprising: computing the first score of the object based on relevance between each term in the query and the object, and a term frequency of the term in the query, or computing the first score of the object based on relevance between each term in an augmented query corresponding to the query and the object, and a weight of the term included in a query high-dimensional vector of the query; computing a second score of the object based on a vector distance between an object vector of the object and a query vector of the query; and computing the ranking score based on the first score and the second score.
[0100] The object vector of the object may be represented by a centroid vector of a centroid of a posting list where the object is located.
[0101] The method 800 may further comprise: in response to the first minimum identifier being not equivalent to the second minimum identifier: identifying a maximum identifier in the first minimum identifier and the second minimum identifier; and shifting pointers pointing to identifiers less than the maximum identifier to a next identifier.
[0102] The method 800 may further comprise: in response to determining that at least one set of posting lists has been traversed, stopping performing the intersection operation.
[0103] It should be appreciated that the method 800 may further comprise any other steps / processes for multi-index search according to the embodiments of the present disclosure as mentioned above.
[0104] FIG. 9 illustrates an exemplary apparatus 900 for multi-index search according to an embodiment of the present disclosure.
[0105] The apparatus 900 may comprise: a query receiving module 910, for receiving a query; a sparse index obtaining module 920, for obtaining a sparse index containing a plurality of posting lists, each posting list containing a term and a plurality of postings, each posting containing an identifier of an object including the term, and the plurality of postings being sorted by identifiers contained therein; a dense index obtaining module 930, for obtaining a dense index containing a plurality of original posting lists, each original posting list containing a centroid and a plurality of postings, and each posting containing an identifier of an object close to the centroid and an object vector of the object; a first set of posting lists searching module 940, for searching a first set of posting lists relevant to the query from the sparse index; a second set of original posting lists searching module 950, for searching a second set of original posting lists relevant to the query from the dense index; a posting sorting module 960, for sorting, for each original posting list in the second set of original posting lists, a plurality of postings in the original posting list according to identifiers contained therein, to obtain a second set of posting lists; an intersection operation performing module 970, for performing an intersection operation on the first set of posting lists and the second set of posting lists, to obtain an intersection result, the intersection result containing a plurality of objects whose identifiers appear in both the first set of posting lists and the second set of posting lists; and a search result producing module 980, for producing a search result for the query, the search result including highest-ranked objects among the intersection result. Furthermore, the apparatus 900 may further comprise any other modules configured for multi-index search according to the embodiments of the present disclosure as mentioned above.
[0106] FIG. 10 illustrates another exemplary apparatus 1000 for multi-index search according to an embodiment of the present disclosure.
[0107] The apparatus 1000 may comprise: a processor 1010; and a memory 1020 storing computer-executable instructions. The computer-executable instructions, when executed, may cause the processor 1010 to: receive a query; obtain a sparse index containing a plurality of posting lists, each posting list containing a term and a plurality of postings, each posting containing an identifier of an object including the term, and the plurality of postings being sorted by identifiers contained therein, obtaining a dense index containing a plurality of original posting lists, each original posting list containing a centroid and a plurality of postings, and each posting containing an identifier of an object close to the centroid and an object vector of the object; search a first set of posting lists relevant to the query from the sparse index; search a second set of original posting lists relevant to the query from the dense index; for each original posting list in the second set of original posting lists, sort a plurality of postings in the original posting list according to identifiers contained therein, to obtain a second set of posting lists; perform an intersection operation on the first set of posting lists and the second set of posting lists, to obtain an intersection result, the intersection result containing a plurality of objects whose identifiers appear in both the first set of posting lists and the second set of posting lists; and produce a search result for the query, the search result including highest-ranked objects among the intersection result.
[0108] In an implementation, the computer-executable instructions, when executed, may further cause the processor to: generate an augmented query corresponding to the query, the augmented query containing a term relevant to a term in the query and excluding a redundant term in the query. The searching a first set of posting lists relevant to the query from the sparse index may comprise: searching a first set of posting lists relevant to the augmented query from the sparse index.
[0109] The generating an augmented query corresponding to the query may comprise: generating a set of term low-dimensional vectors corresponding to a set of terms of the query; mapping the set of term low-dimensional vectors to a set of term high-dimensional vectors; aggregating the set of term high-dimensional vectors into a query high-dimensional vector; sparsifying the query high-dimensional vector as a query sparse vector; and mapping the query sparse vector to the augmented query.
[0110] The query high-dimensional vector may include at least one weight corresponding to at least one term. A weight corresponding to a term may be associated with semantic similarity between the term and the query.
[0111] In an implementation, the computer-executable instructions, when executed, may further cause the processor to: compress the dense index through removing object vectors from the plurality of original posting lists, to obtain a compressed dense index. The searching a second set of original posting lists relevant to the query from the dense index may comprise: searching a second set of original posting lists relevant to the query from the compressed dense index.
[0112] In an implementation, the performing an intersection operation on the first set of posting lists and the second set of posting lists may comprise: assigning a pointer to each posting list in the first set of posting lists and the second set of posting lists, the pointer initially pointed to the first identifier in the posting list; identifying, from the first set of posting lists, a first minimum identifier in identifiers currently pointed to by pointers; identifying, from the second set of posting lists, a second minimum identifier in identifiers currently pointed to by pointers; and in response to the first minimum identifier being equivalent to the second minimum identifier: computing a ranking score of an object with the first minimum identifier or the second minimum identifier; adding the object into the intersection result according to the ranking score; and shifting pointers pointing to the first minimum identifier or the second minimum identifier to a next identifier.
[0113] The computing a ranking score of an object with the first minimum identifier may comprise: computing a first score of the object, the computing a first score comprising: computing the first score of the object based on relevance between each term in the query and the object, and a term frequency of the term in the query, or computing the first score of the object based on relevance between each term in an augmented query corresponding to the query and the object, and a weight of the term included in a query high-dimensional vector of the query; computing a second score of the object based on a vector distance between an object vector of the object and a query vector of the query; and computing the ranking score based on the first score and the second score.
[0114] The object vector of the object may be represented by a centroid vector of a centroid of a posting list where the object is located.
[0115] The computer-executable instructions, when executed, may further cause the processor to: in response to the first minimum identifier being not equivalent to the second minimum identifier: identify a maximum identifier in the first minimum identifier and the second minimum identifier; and shift pointers pointing to identifiers less than the maximum identifier to a next identifier.
[0116] It should be appreciated that the processor 1010 may further perform any other steps / processes of the method for multi-index search according to the embodiments of the present disclosure as mentioned above.
[0117] The embodiments of the present disclosure propose a computer program product for multi-index search, comprising a computer program that is executed by a processor for: receiving a query; obtaining a sparse index containing a plurality of posting lists, each posting list containing a term and a plurality of postings, each posting containing an identifier of an object including the term, and the plurality of postings being sorted by identifiers contained therein; obtaining a dense index containing a plurality of original posting lists, each original posting list containing a centroid and a plurality of postings, and each posting containing an identifier of an object close to the centroid and an object vector of the object; searching a first set of posting lists relevant to the query from the sparse index; searching a second set of original posting lists relevant to the query from the dense index; for each original posting list in the second set of original posting lists, sorting a plurality of postings in the original posting list according to identifiers contained therein, to obtain a second set of posting lists; performing an intersection operation on the first set of posting lists and the second set of posting lists, to obtain an intersection result, the intersection result containing a plurality of objects whose identifiers appear in both the first set of posting lists and the second set of posting lists; and producing a search result for the query, the search result including highest-ranked objects among the intersection result. Furthermore, the computer program may be further executed for implementing any other steps / processes of the method for multi-index search according to the embodiments of the present disclosure as mentioned above.
[0118] The embodiments of the present disclosure may be embodied in a computer-readable medium for multi-index search. The computer-readable medium may comprise instructions that, when executed, cause a processor to: receive a query; obtain a sparse index containing a plurality of posting lists, each posting list containing a term and a plurality of postings, each posting containing an identifier of an object including the term, and the plurality of postings being sorted by identifiers contained therein; obtain a dense index containing a plurality of original posting lists, each original posting list containing a centroid and a plurality of postings, and each posting containing an identifier of an object close to the centroid and an object vector of the object; search a first set of posting lists relevant to the query from the sparse index; search a second set of original posting lists relevant to the query from the dense index; for each original posting list in the second set of original posting lists, sort a plurality of postings in the original posting list according to identifiers contained therein, to obtain a second set of posting lists; perform an intersection operation on the first set of posting lists and the second set of posting lists, to obtain an intersection result, the intersection result containing a plurality of objects whose identifiers appear in both the first set of posting lists and the second set of posting lists; and produce a search result for the query, the search result including highest-ranked objects among the intersection result. Furthermore, the instructions, when executed, may further cause the processor to perform any other steps / processes of the method for multi-index search according to the embodiments of the present disclosure as mentioned above.
[0119] It should be appreciated that all the operations in the methods described above are merely exemplary, and the present disclosure is not limited to any operations in the methods or sequence orders of these operations, and should cover all other equivalents under the same or similar concepts. In addition, the articles “a” and “an” as used in this specification and the appended claims should generally be construed to mean “one” or “one or more” unless specified otherwise or clear from the context to be directed to a singular form.
[0120] It should also be appreciated that all the modules in the apparatuses described above may be implemented in various approaches. These modules may be implemented as hardware, software, or a combination thereof. Moreover, any of these modules may be further functionally divided into sub-modules or combined together.
[0121] Processors have been described in connection with various apparatuses and methods. These processors may be implemented using electronic hardware, computer software, or any combination thereof. Whether such processors are implemented as hardware or software will depend upon the particular application and overall design constraints imposed on the system. By way of example, a processor, any portion of a processor, or any combination of processors presented in the present disclosure may be implemented with a microprocessor, microcontroller, digital signal processor (DSP) , a field-programmable gate array (FPGA) , a programmable logic device (PLD) , a state machine, gated logic, discrete hardware circuits, and other suitable processing components configured for performing the various functions described throughout the present disclosure. The functionality of a processor, any portion of a processor, or any combination of processors presented in the present disclosure may be implemented with software being executed by a microprocessor, microcontroller, DSP, or other suitable platform.
[0122] Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, threads of execution, procedures, functions, etc. The software may reside on a computer-readable medium. A computer-readable medium may include, by way of example, memory such as a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip) , an optical disk, a smart card, a flash memory device, random access memory (RAM) , read only memory (ROM) , programmable ROM (PROM) , erasable PROM (EPROM) , electrically erasable PROM (EEPROM) , a register, or a removable disk. Although memory is shown separate from the processors in the various aspects presented throughout the present disclosure, the memory may be internal to the processors, e.g., cache or register.
[0123] The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein. All structural and functional equivalents to the elements of the various aspects described throughout the present disclosure that are known or later come to be known to those of ordinary skilled in the art are expressly incorporated herein and intended to be encompassed by the claims.
Claims
1.A method for multi-index search, comprising:receiving a query;obtaining a sparse index containing a plurality of posting lists, each posting list containing a term and a plurality of postings, each posting containing an identifier of an object including the term, and the plurality of postings being sorted by identifiers contained therein;obtaining a dense index containing a plurality of original posting lists, each original posting list containing a centroid and a plurality of postings, and each posting containing an identifier of an object close to the centroid and an object vector of the object;searching a first set of posting lists relevant to the query from the sparse index;searching a second set of original posting lists relevant to the query from the dense index;for each original posting list in the second set of original posting lists, sorting a plurality of postings in the original posting list according to identifiers contained therein, to obtain a second set of posting lists;performing an intersection operation on the first set of posting lists and the second set of posting lists, to obtain an intersection result, the intersection result containing a plurality of objects whose identifiers appear in both the first set of posting lists and the second set of posting lists; andproducing a search result for the query, the search result including highest-ranked objects among the intersection result.2.The method of claim 1, further comprising:generating an augmented query corresponding to the query, the augmented query containing a term relevant to a term in the query and excluding a redundant term in the query, andwherein the searching a first set of posting lists relevant to the query from the sparse index comprises:searching a first set of posting lists relevant to the augmented query from the sparse index.3.The method of claim 2, wherein the generating an augmented query corresponding to the query comprises:generating a set of term low-dimensional vectors corresponding to a set of terms of the query;mapping the set of term low-dimensional vectors to a set of term high-dimensional vectors;aggregating the set of term high-dimensional vectors into a query high-dimensional vector;sparsifying the query high-dimensional vector as a query sparse vector; andmapping the query sparse vector to the augmented query.4.The method of claim 3, wherein the query high-dimensional vector includes at least one weight corresponding to at least one term, a weight corresponding to a term being associated with semantic similarity between the term and the query.5.The method of claim 1, further comprising:compressing the dense index through removing object vectors from the plurality of original posting lists, to obtain a compressed dense index, andwherein the searching a second set of original posting lists relevant to the query from the dense index comprises:searching a second set of original posting lists relevant to the query from the compressed dense index.6.The method of claim 1, wherein the performing an intersection operation on the first set of posting lists and the second set of posting lists comprises:assigning a pointer to each posting list in the first set of posting lists and the second set of posting lists, the pointer initially pointed to the first identifier in the posting list;identifying, from the first set of posting lists, a first minimum identifier in identifiers currently pointed to by pointers;identifying, from the second set of posting lists, a second minimum identifier in identifiers currently pointed to by pointers; andin response to the first minimum identifier being equivalent to the second minimum identifier:computing a ranking score of an object with the first minimum identifier or the second minimum identifier;adding the object into the intersection result according to the ranking score; andshifting pointers pointing to the first minimum identifier or the second minimum identifier to a next identifier.7.The method of claim 6, wherein the computing a ranking score of an object with the first minimum identifier comprises:computing a first score of the object, the computing a first score comprising:computing the first score of the object based on relevance between each term in the query and the object, and a term frequency of the term in the query, orcomputing the first score of the object based on relevance between each term in an augmented query corresponding to the query and the object, and a weight of the term included in a query high-dimensional vector of the query;computing a second score of the object based on a vector distance between an object vector of the object and a query vector of the query; andcomputing the ranking score based on the first score and the second score.8.The method of claim 7, wherein the object vector of the object is represented by a centroid vector of a centroid of a posting list where the object is located.9.The method of claim 6, further comprising:in response to the first minimum identifier being not equivalent to the second minimum identifier:identifying a maximum identifier in the first minimum identifier and the second minimum identifier; andshifting pointers pointing to identifiers less than the maximum identifier to a next identifier.10.The method of claim 6 or 9, further comprising:in response to determining that at least one set of posting lists has been traversed, stopping performing the intersection operation.11.An apparatus for multi-index search, comprising:a processor; anda memory storing computer-executable instructions that, when executed, cause the processor to:receive a query,obtain a sparse index containing a plurality of posting lists, each posting list containing a term and a plurality of postings, each posting containing an identifier of an object including the term, and the plurality of postings being sorted by identifiers contained therein,obtain a dense index containing a plurality of original posting lists, each original posting list containing a centroid and a plurality of postings, and each posting containing an identifier of an object close to the centroid and an object vector of the object,search a first set of posting lists relevant to the query from the sparse index,search a second set of original posting lists relevant to the query from the dense index,for each original posting list in the second set of original posting lists, sort a plurality of postings in the original posting list according to identifiers contained therein, to obtain a second set of posting lists,perform an intersection operation on the first set of posting lists and the second set of posting lists, to obtain an intersection result, the intersection result containing a plurality of objects whose identifiers appear in both the first set of posting lists and the second set of posting lists, andproduce a search result for the query, the search result including highest-ranked objects among the intersection result.12.The apparatus of claim 11, wherein the computer-executable instructions, when executed, further cause the processor to:generate an augmented query corresponding to the query, the augmented query containing a term relevant to a term in the query and excluding a redundant term in the query, andwherein the searching a first set of posting lists relevant to the query from the sparse index comprises:searching a first set of posting lists relevant to the augmented query from the sparse index.13.The apparatus of claim 12, wherein the generating an augmented query corresponding to the query comprises:generating a set of term low-dimensional vectors corresponding to a set of terms of the query;mapping the set of term low-dimensional vectors to a set of term high-dimensional vectors;aggregating the set of term high-dimensional vectors into a query high-dimensional vector;sparsifying the query high-dimensional vector as a query sparse vector; andmapping the query sparse vector to the augmented query.14.The apparatus of claim 13, wherein the query high-dimensional vector includes at least one weight corresponding to at least one term, a weight corresponding to a term being associated with semantic similarity between the term and the query.15.The apparatus of claim 11, wherein the computer-executable instructions, when executed, further cause the processor to:compress the dense index through removing object vectors from the plurality of original posting lists, to obtain a compressed dense index, andwherein the searching a second set of original posting lists relevant to the query from the dense index comprises:searching a second set of original posting lists relevant to the query from the compressed dense index.16.The apparatus of claim 11, wherein the performing an intersection operation on the first set of posting lists and the second set of posting lists comprises:assigning a pointer to each posting list in the first set of posting lists and the second set of posting lists, the pointer initially pointed to the first identifier in the posting list;identifying, from the first set of posting lists, a first minimum identifier in identifiers currently pointed to by pointers;identifying, from the second set of posting lists, a second minimum identifier in identifiers currently pointed to by pointers; andin response to the first minimum identifier being equivalent to the second minimum identifier:computing a ranking score of an object with the first minimum identifier or the second minimum identifier;adding the object into the intersection result according to the ranking score; andshifting pointers pointing to the first minimum identifier or the second minimum identifier to a next identifier.17.The apparatus of claim 16, wherein the computing a ranking score of an object with the first minimum identifier comprises:computing a first score of the object, the computing a first score comprising:computing the first score of the object based on relevance between each term in the query and the object, and a term frequency of the term in the query, orcomputing the first score of the object based on relevance between each term in an augmented query corresponding to the query and the object, and a weight of the term included in a query high-dimensional vector of the query;computing a second score of the object based on a vector distance between an object vector of the object and a query vector of the query; andcomputing the ranking score based on the first score and the second score.18.The apparatus of claim 17, wherein the object vector of the object is represented by a centroid vector of a centroid of a posting list where the object is located.19.The apparatus of claim 16, wherein the computer-executable instructions, when executed, further cause the processor to:in response to the first minimum identifier being not equivalent to the second minimum identifier:identify a maximum identifier in the first minimum identifier and the second minimum identifier; andshift pointers pointing to identifiers less than the maximum identifier to a next identifier.20.A computer program product for multi-index search, comprising a computer program that is executed by a processor for:receiving a query;obtaining a sparse index containing a plurality of posting lists, each posting list containing a term and a plurality of postings, each posting containing an identifier of an object including the term, and the plurality of postings being sorted by identifiers contained therein;obtaining a dense index containing a plurality of original posting lists, each original posting list containing a centroid and a plurality of postings, and each posting containing an identifier of an object close to the centroid and an object vector of the object;searching a first set of posting lists relevant to the query from the sparse index;searching a second set of original posting lists relevant to the query from the dense index;for each original posting list in the second set of original posting lists, sorting a plurality of postings in the original posting list according to identifiers contained therein, to obtain a second set of posting lists;performing an intersection operation on the first set of posting lists and the second set of posting lists, to obtain an intersection result, the intersection result containing a plurality of objects whose identifiers appear in both the first set of posting lists and the second set of posting lists; andproducing a search result for the query, the search result including highest-ranked objects among the intersection result.