Distributing content indices

A query-centric system and process for distributing reverse indices for a distributed content system. Relevance ranking techniques in organizing distributed system indices. Query-centric configuration subprocesses (1) analyze query data, partitioning terms for reverse index server(s) (RIS), (2) distribute each partitioned data set by generally localizing search terms for the RIS that have some query-centric correlation, and (3) generate and maintain a map for the partitioned reverse index system terms by mapping the terms for the reverse index to a plurality of different index server nodes. Indexing subprocess element builds distributed reverse indices from content host indices. Routines of the query execution use the map derived in the configuration to more efficiently return more relevant search results to the searcher.

BACKGROUND

1. Technical Field

The disclosure relates generally to searching systems and processes for obtaining access to distributed content.

2. Description of Related Art

The increasing need to share computer resources and information, the decreasing cost of powerful workstations, the widespread use of networks, the maturity of software technologies, and other such factors, have increased the demand for more efficient information retrieval mechanisms

In general, a common factor of searching system techniques is the use of simple keyword matching, but generally ignoring advanced relevance ranking algorithms. There is a need for improving network distributed content searches.

BRIEF SUMMARY

The invention generally provides for a query-centric approach using relevance ranking techniques in organizing distributed system indices.

The foregoing summary is not intended to be inclusive of all aspects, objects, advantages and features of the present invention nor should any limitation on the scope of the invention be implied therefrom nor should any be implied from the exemplary embodiments generically described herein. This Brief Summary is provided in accordance with the mandate of 37 C.F.R. 1.73 and M.P.E.P. 608.01(d) merely to apprise the public, and more especially those interested in the particular art to which the invention relates, of the nature of the invention in order to be of assistance in aiding ready understanding of the patent in future searches.

Like reference designations represent like features throughout the drawings. The drawings in this specification should be understood as not being drawn to scale unless specifically annotated as such.

DETAILED DESCRIPTION

FIG. 1illustrates a typical distributed system101of nodes—also referred to in the art as computers, servers, document servers, hosts, and the like. The illustration ofFIG. 1is simplified for the benefit of explanation of the present invention. It will be recognized by those skilled in the art that a more complex reality is implied as each nodal machine represented in labeled-box format, whether a personal computer, mainframe computer, personal digital assistant, web-ready telecommunications device, and the like, may serve multiple functions. Other networking formats, proprietary intranets, peer-to-peer networks, and the like, may also derive implementations of the present invention.

Some of the network nodes103, shown as representative boxes labeled “CONTENT HOST36,” “CONTENT HOST47,” and “CONTENT HOST N” may include one or more forms of stored content—e.g., published documents, graphics, entertainment media, and the like. Other network nodes105, “USERS105A,105B . . .105Z . . . Z,”—e.g., personal computers, servers, personal digital assistant devices, web-enabled telecommunication devices, or the like, having browser programs, e.g., Microsoft Explorer™, Netscape™, and the like—seek to gain relatively rapid access to stored content via the Internet107. Various well known search engines—e.g., Google™, AskJeeves™, Gnutella™ and the like, shown as “SEARCH ISP” (Internet Service Provider)109(illustrating one of the many)—facilitate the USERS105searching the Internet for stored content based on user-generated queries.

One form of search engine is known a the “reverse index system” (RIS). Basically, whenever content is newly posted by an owner, generally at their own web site to be available over the Internet107, such RIS programs may peruse such content and tokenize it. The content may be broken into a set of “tokens,” or other elements; e.g., words-of-interest that might be relevant to a later search for the content as a whole. This may be considered as analogous to an index of a book. A RIS file, or a like database, is created for each token. Each RIS file may thus accumulate many web sites having stored content having the same token term(s). A directory of RIS files may be stored at each SEARCH ISP109. Thus, search terms of a user query may be compared to the directory which leads to a particular RIS file which in turn may point—e.g., by path identifier(s) and CONTENT HOST's address/file identifier(s)—to the plurality of HOST locations of full, stored content. For example, assume the current query sent by a USER105is the proper name “Louis Armstrong.” The return to the USER of CONTENT HOST addresses—also referred to as “hits”—generally will include every match for the word “Louis,” every match for the word “Armstrong, and every match for the compound term “Louis Armstrong,” perhaps putting at the head of the returns, those which actually have the compound term “Louis Armstrong” and at the end of the returns those for hits such as “St. Louis, Mo.” or “Armstrong Baking Powder.” USERS105can usually narrow searches by refining search terms of the query to narrow the number of resultant matches, e.g., a query for “trumpet Armstrong” may likely return far fewer irrelevant hits. But this manner of improving the quality of search returns relies on the USERS intuitive ability to formulate proper searches.

Assuming the USER105query is now for “trumpet Armstrong.” Also, assume that a SEARCH ISP109has alphabetized its RIS servers. The SEARCH ISP109may run appropriate subprocesses via its network111of RIS SERVERs113(recognizing that this is a simplification in that index servers may also be distributed around the system), searching for the index file for the token “trumpet”—e.g.,FIG. 1, “RIS SERVER (T)—and the index file for the token “Armstrong”—e.g.,FIG. 1, RIS SERVER (A). The SEARCH ISP109may then co-relate the findings to return to the querying USER105a list that may constitute higher probability hits of web sites links to HOST(S)103having stored content for famous jazz trumpeter Louis Armstrong. Generally, however, the SEARCH ISP109still returns lower order separate hits for “trumpet” and “Armstrong.”

However, in order to improve efficiency and to prevent gridlock over the network from the multitude of search requests continuously received, operations such as Google company distribute processes over many SEARCH ISP engines and the RIS files over many servers. For example, assume there is a first server having all RIS files for the “a words” (e.g., “aardvark” through “azure,” including “Armstrong”) RIS files, and a twentieth server having the RIS files for the “t words” (“tab” through “tzar,” including “trumpet). Such ISPs may use known manner distribution hash function techniques to point to servers having the reverse index files relevant to each current particular search. Distributed hash tables effectively multiplex the plurality of RIS servers for storage and retrieval of the relevant reverse index table for each query identifier term. Thus, a hash function on “trumpet” and a hash function on “Armstrong” returns the first and twentieth servers as the ones having the relevant reverse index lists. Generally, an intermediating server will perform a Boolean operation to correlate all the RIS lists found and return mostly those files which relate to trumpeter Louis Armstrong, cancelling hits on others with a less likely probability of being a true hit; e.g. eliminating web site links to “trumpeting elephants” or “Armstrong tires.”

A problem may occur, for example, if the query string is large or uses a plurality of very common terms—e.g., a specific query phrased as “trumpeter Louis Armstrong playing the song Do You Know What It Means To Miss New Orleans at Carnegie Hall.” Now many RIS SERVERS113will need to be accessed in order to accumulate the vast number of CONTENT HOST103links that may satisfy the hashing of all these terms. Much more computer time, network traffic, and processing power is consumed.

The invention generally provides for a query-centric approach in organizing stored content indices. It has been determined that this query-centric approach may greatly reduce the amount of metadata and unnecessary metadata replications. The query-centric approach may be tailored to find more relevant responses to queries in a more efficient manner.

Several assumptions, or givens, are employed in accordance with describing exemplary embodiment present invention. The system101shown ifFIG. 1is used to provide the basic structure of a distributed networking system. A known manner log file listing queries users have made or are likely to make may be used by SEARCH ISPs109. A set of index servers, RIS SERVERS113, is operated in a known manner. While a distributed system exemplary embodiment is described in detail with respect to the ubiquitous Internet107system, it will be recognized by those skilled in the art that other network systems—e.g., a proprietary intranets, peer-to-peer networking, and the like—can adapt the present invention to specific implementations therefor.

FIG. 2is a general overall process flowchart for an exemplary embodiment of the present invention. It will be recognized by those skilled in the art that the process can be implemented in machine-language, such as software, firmware, or other computer code and the like, stored in a computer-readable medium such as memory in the nodes of the distributed system101. The process may be segregated into three major components: QUERY-CENTRIC CONFIGURATION201(referred to more simply hereinafter as just CONFIGURATION201), CONTENT INDEXING202, and QUERY EXECUTION203. The routines of the CONFIGURATION201element (1) analyze query log files to form a construct, such as a term co-occurrence graph, (2) partition such a graph, generally localizing search terms for each RIS SERVER113to have some query-centric correlation, and (3) generate and maintain a map for the partitioned query-term data sets by mapping each query-centric term, usually to a single index server node RIS SERVERs113. The routines of the CONTENT INDEXING202element build distributed query-centric reverse indices from CONTENT HOST indices using the map distribute them to RIS SERVERs113. The routines of the QUERY EXECUTION203then use the map derived in the CONFIGURATION201to more efficiently return more relevant search results to the querying USER105.

For purpose of description, assume that the process is implemented by an ISP such as SEARCH ISP109,FIG. 1with respect to its network111of RIS SERVERS113. It should be recognized that a variety of specific implementations are envisioned by the inventors, including selling a software product useful to ISPs, providing the processes ISPs to develop specific implementations, doing business by offering the processes on individually retained Internet node machines, and the like.

FIGS. 3A and 3Bare an exemplary embodiment of the subprocess for CONFIGURATION201ofFIG. 2. The goal of the CONFIGURATION201subprocess is to partition the query terms using query-centric analysis and to generate a map, mapping partitioned query terms onto a plurality of RIS SERVERS113accordingly. A log, e.g., “QUERY HISTORY” file,301may be created in a known manner to develop and to maintain a history of USER105queries. In general, the log301may be a listing of all specific queries from all users, or a statistically relevant representative sample thereof such as terms created or added by a system analyst or another program, whereby each user is attempting to find specific content which may be at one or more specific CONTENT HOSTs103via the Internet107.

A statistical-type analysis305is made of the log periodically; for example, a count may be maintained of the frequency of co-occurrence for every pair of co-occurring terms in the queries. The analysis305results in a data form302correlating search terms. In this exemplary embodiment, the analysis305is used specifically to create a SIMILARITY GRAPH302. For example, in the current QUERY HISTORY301, the term “PHONE” is separately coupled with“PRIMUS LONG DISTANCE,”“PRIMUS” and“NUMBER DISCONNECT.”
The words “LONG” and “DISTANCE” being of a relatively common coupling in standard usage with respect to telephony, may be made one query term (e.g., “long_distance”) for analysis purposes. In other words, it should be recognized that the size of the graph can be reduced by using known manner techniques such as coalescing common term pairs, stemming, truncating terms, universal characterizing, and the like. Each word of a query, or compound term if a logical correlation of words is recognized, is considered a node306of the SIMILARITY GRAPH302and each nodal connector, or “edge”307, indicates a direct relationship of the nodes connected thereby. Any word or compound term that appears multiple times, becomes a single node307; e.g., there is only one “PHONE” node even though it appears in multiple query terms. Each edge may be assigned a value connotative of the frequency of co-occurrence, creating a relevance ranking. In this example, the terms “PRIMUS” and “PHONE” are paired twice in the QUERY HISTORY, therefore their nodal connector edge307′ is assigned a value of “2.” In other words, each of the edges307,307′ may have an assigned frequency weight reflecting how often the terms co-occur in the QUERY HISTORY301.

Next, GRAPH ANALYSIS309is performed. In the preferred embodiment, a graph partitioning method may be employed, partitioning the SIMILARITY GRAPH302into PARTITION TABLES303such that the number of tables—or alternatively, lists or other commonly used stored data formats—created minimizes the total frequency weight cut across partition boundaries. In other words, ideally, no edges would remain that connect PARTITION TABLE1to any other derived PARTITION TABLE. Hardware constraints or limitations may define the partitioning limits—e.g., having only a given set of available index servers, some servers having limited a computer readable storage medium such as a memory available for index storage, or the like.

As an option, in addition to the frequency count, or weight, on the edges307, each node306may be supplemented with a count, or weight, to refine the system, e.g., being an indication of how long the index file may be or how often it is used.

It will be recognized by those skilled in the art that the present invention may be implemented using a variety of known manner statistical analysis partitioning methods to correlate search query terms. Two known manner examples which may be employed in accordance with the present invention are described next.

As one example,The Algorithm Design Manual, by Steven S. Skiena, copyright 1997, by TELOS publishing, ISBN: 0387948600, explains: “The basic approach to dealing with graph partitioning or max-cut problems is to construct an initial partition of the vertices (either randomly or according to some problem-specific strategy) and then sweep through the vertices, deciding whether the size of the cut would increase or decrease if we moved this vertex over to the other side. The decision to move v can be made in time proportional to its degree by simply counting whether more of v's neighbors are on the same team as v or not. Of course, the desirable side for v will change if many of its neighbors jump, so multiple passes are likely to be needed before the process converges on a local optimum. Even such a local optimum can be arbitrarily far away from the global max-cut.”

As a second example of a partitioning process, where the SIMILARITY GRAPH provides a relatively large number of disconnected terms, a “union-find” algorithm may be employed. Basically, such a process will sort the edges, most frequent first, and run them through the “union-find algorithm” one-by-one, but ignoring the lowest frequency pairs. Next, for each edge, the process will connect its two endpoints into one connected component, unless they are already in the same component or unless doing so would cause the joined component to be larger than the size constraint for a single index server. At the end, there may be very many disjoint components. Next, the process will apply a well-known bin-packing algorithm (likely the known manner “greedy” method) to pack the components of different sizes into ‘bins’ which are related to the workload capacity of each index server.

It can now be recognized that the partitioning algorithm for a specific implementation may be run on one or more separate computers. In providing a business service, for example, a single computer may analyze one or more query logs around the distributed system (seeFIG. 1) and run the partitioning algorithm and other processes for a business client.

The DISTRIBUTION MAP304may be developed at and may reside at the SEARCH ISP109. Again, among practitioners, a variety of such mapping techniques are known and may be adapted to a specific implementation of the present invention. For example, another way both to partition the graph and then to map a term to an RIS SERVER113is network proximity estimation, using a landmark-based approach. With this approach, a small number of terms in the similarity graph may be selected as landmark nodes. Every non-landmark term in the graph measures their distances (minimum) to these selected landmark terms in the graph, and a coordinate is computed based on this measurement. A reference to how this can be done can be found in Predicting Internet Network Distance with Coordinates-based Approaches, T. S. E. Ng and H Zhang, Proceedings of the IEEE International Conference on Computer Communications (INFOCOM 2002), June 2002, incorporated herein by reference.

Thus, each PARTITION TABLE3031,2, . . . n, may be assigned to a different one of the RIS SERVERS113(FIG. 1) as a file for CONTENT HOST103web site links. As will be recalled from the Background Section hereinabove, in the prior art, a simple system of alphabetization had been employed for storing index server files. Now however, since the goal is to partition terms of the reverse index using a statistical analysis to create such correlated queries into relevance-related sets—such as the PARTITION TABLES3031,2ofFIG. 3Awhere a frequency of co-occurrence for every pair of co-occurring terms in the queries was used—the DISTRIBUTION MAP304may be created to track the assignment of each of the TABLES to their assigned RIS SERVERS113. Note that the DISTRIBUTION MAP304may be saved as file on a shared file system and all those connected to the network can begin using it, whether the network is fundamentally static as with ISP RIS SERVERS113servicing HOSTS103over the Internet107, or more dynamic situations such as in peer-to-peer networking.

When partitioning a SIMILARITY GRAPH302and mapping PARTITION TABLES311in practice, in addition to considering the popularity of the terms in queries, the popularity of the terms in the entire corpora of content items and the selectivity of the query terms also may be considered. Below are a few exemplary relevant principles that the inventors have identified:1. Popular terms that appear in queries should be mapped to a larger number of nodes via replication. This helps to better distribute the query load.2. To balance the query load on the nodes, it may be beneficial to collocate popular terms with unpopular ones.3. If a term is popular in the corpora, it implies that more documents will have the term, and more storage space is needed to store the index list.4. Terms that are popular in a corpora usually have smaller selectivity. It is usually proper to distribute such terms across a relatively large number of nodes.5. New graphs are usually constructed periodically because the nature of queries received by the system can change over the time. When assigning a term to a node, minimize the changes to the previous mapping to minimize the data movement.
Principles and other considerations such as these and others as may be relevant to a particular implementation of the invention can be incorporated in the graph partitioning algorithms; e.g., by assigning a weight to each term and controlling the overall weight of terms to be stored on a particular node.

No matter how well the SIMILARITY GRAPH302is partitioned, there may always cases where terms in the same query are mapped to different RIS SERVERS113. That is, one or more edges307may cross the boundary313. To reduce the inefficiency due to this; it may be advantageous to organize the hosts into an overlay network according to network proximity, and store terms that are close to each other on the SIMILARITY GRAPH302onto nodes that are close to each other in terms of network distances to improve network performance. One way to achieve this goal is to assign node identification (ID) to each PARTITION TABLE303(1),303(2) . . .303(n) according to relative network positions; nodes close to each other in network distances are assigned similar IDs in the overlay ID space. Similarly, terms that are close to each other in the SIMILARITY GRAPH302are mapped to nodes with IDs close in the ID space. In other words, based on a similar analysis, and edge between partitions can be weighted such that the distribution of indices takes into account that interrelationship. A separate Similarity Graph may be constructed to design the layout of distributed Reverse Index Servers accordingly. Furthermore, for terms that are popular in the content corpora, there are cases when multiple nodes are needed to store the index list of the corresponding documents. The partition distribution311and mapping304may be arranged in such a way that nodes hosting the same term are close to each other in the network of interest.

Note also that the SIMILARITY GRAPHs302may be constructed in parallel. Each ISP node of the system101constructs a partial graph based on the queries it witnessed, and a reduction network may be constructed to merge them. This may be particularly valuable for P2P networking. When the overlay is constructed to take advantage of network proximity, the reduction can be performed more efficiently.

Thus, having now described the CONFIGURATION201system and process, it can be recognized that there is now a query-centric partitioning of search-query terms for a reverse index system and distributing of the partitions, with a mapping of indexed query terms to a plurality of RIS server network nodes operating in conjunction with a set of content network nodes and a set of user network nodes. Again, those skilled in the art will recognized that each system101node is a machine that may serve one or more functions. Another distinct advantage can be recognized in that it is now likely that related content links will be in close network proximity, particularly important in improving the performance of a system where index servers themselves are widely distributed also.FIGS. 4A and 4Billustrate details for the CONTENT INDEXING element ofFIG. 2in whichFIG. 4Ais a system and process flow diagram andFIG. 4Bis a correlated flow chart. For purpose of facilitating description of the invention, assume there will be a given set of index servers—e.g.,FIG. 1, RIS SERVERs113—that are to hold the reverse index lists in files created by the CONFIGURATION201process and a given set of content servers—e.g.,FIG. 1, CONTENT HOSTs103.

On each CONTENT HOST1031, 2, . . . n, independently and in parallel:(401) generate a reverse index for each query term over all the content source files411hosted at that CONTENT HOST;(402) compare the reverse index generated401to the terms of each DISTRIBUTION MAP304obtained from each SEARCH ISP109; and(403) send the reverse indices for all terms that appropriately map to the appropriate SEARCH ISP(s).
Thus, the reverse indices distributed across the network by each CONTENT HOST103are parsed out only to appropriate SEARCH ISPs109according to each one's DISTRIBUTION MAP304rather than to all SEARCH ISPs.

On each RIS SERVER1131, 2 . . . n, independently and in parallel: for each query term, build its reverse index query-term partitioned files412by merging the reverse indices received from all CONTENT HOSTs103. Thus, at each RIS SERVER1131, 2, . . . nfor each query term, there is a reverse index file412which may list CONTENT HOST source file names, or other identifiers, and a linking address to the full content containing the query-term. Since each of the CONTENT HOSTs103sort each of their reverse indices, naturally, this may amount to the merge step of merge-sort, and is O(N) rather than O(N log N) for sorting.

In other words, on the system101node where the partitioned query terms is mapped to, and in the file for the appropriate partitioned query term, the subprocess stores the content link list, or reference to another such a list.

It can be recognized now that the system in this exemplary embodiment may be set up such that there is a distribution to RIS SERVERS1131, 2 . . . nof reverse index list files412wherein each file likely may have query terms that have a high probability of having some similarity, as determined by the SIMILARITY GRAPH302, rather than a mere arbitrary relationship, e.g., “the term starts with the letter ‘a’.” Now, using the DISTRIBUTION MAP304, new queries can be more efficiently handled. In other words, whereas in a prior art flooding scheme, such a Google search, a new query may go to all index servers connected therethrough, in accordance with the present invention a new query will be handled more intelligently rather than in a one-to-all communication which would use up network resources needlessly.FIGS. 5A and 5Billustrate details for the QUERY EXECUTION element ofFIG. 2in whichFIG. 5Ais a system and process flow diagram andFIG. 5Bis a correlated flow chart.

A new query, composed of a set of terms residing on a USER node105or a query server, is generated501, e.g., “colorful GIF phone.” Each term of the new query is mapped via the DISTRIBUTION MAP304. First, each term of the new query is mapped502through the partitioning to determine which of the RIS SERVERs113contains the reverse index list including that term. For example, looking back toFIG. 3A, terms were partitioned into the PARTITION TABLES303such that the terms “colorful” and “GIF” went into PARTITION TABLE2and “phone” went into PARTITION TABLE1. Thus, the new query is only parsed out503to two RIS SERVERS113having the relevant files of lists of CONTENT HOSTs103as illustrated by the labeled arrows from the DISTRIBUTION MAP304. However, it may be predicted and it has been found experimentally that because of the way the partitioning was constructed, on average, all query terms may be likely sent to only a single RIS SERVER113.

In the event of forwarding the new query to each of multiple relevant RIS SERVERS113for matching and retrieval of appropriate links in the list therein, it may be preferable to designate one of them as a “leader.” For example, an acceptable method may be to select as the leader as an RIS SERVER113having the most number of the currently received query terms; in this same example, RIS SERVER113(8) would be the leader having matches for both the terms “colorful” and “GIF.” This information can be used in the next steps.

Each RIS SERVER113performs a lookup504on the terms it owns; for example, using the forwarding lists for the contents, resolving multiple terms received, e.g., the RIS SERVER113(8) correlating the terms “colorful” and “GIF” to return hits having only both terms. Note that this will be a much shorter list of terms than an exemplary alphabetize index server in the prior art, as such would return would have returned all of the hits for “colorful” from its “C file” and all the file for “GIF” from its “G” file. Thus, an RIS SERVER113computes an individual summary505; if more than one RIS SERVER is involved, the summary is sent to the leader. As another example: suppose the query is: “(a and b and c) or (f and g and h) or . . . ”, and suppose only the boldface terms reside on the local index server. An RIS SERVER113could compute the list of documents matching only the sub-expressions “(a and b and c)” and “(g and h)”, reducing the number of lists and moreover the total volume of data that needs be sent to the leader; or if it is the leader, then reducing the amount of computation that needs be performed after the results from the other index servers arrive, reducing the query latency for the user.

The RIS SERVER113involved if only one, or the leader if more than one, provides the partially resolved term correlation lists to the SEARCH ISP109. The SEARCH ISP109then compiles a final summary, namely, resolving to a final hit list for the querying USER105—to continue the example, analyzing the shortened “colorful GIF” listing from the one RIS SERVER113having the PARTITION TABLE2files of related CONTENT HOST103web site links with the returned “phone” listing from the other RIS SERVER113having the PARTITION TABLE2files of related CONTENT HOST103web site links. In other words, the SEARCH ISP109creates a final hit list of all CONTENT HOST(s)103which have contents, i.e., complete documents or the like that match the entire new query. The hit list is then sent507back to the querying USER105.

Thus, the present invention provides a combination of QUERY-CENTRIC CONFIGURATION201, CONTENT INDEXING202and QUERY EXECUTION203in accordance with statistical analysis such as advanced relevance ranking algorithms such that a query-centric approach in organizing indices improves content searching tasks.