MECHANISMS FOR SEARCHING ENTERPRISE DATA GRAPHS
First Claim
1. A method comprising:
- generating an index mapping data objects to terms associated with the data objects;
generating a graph describing relationships between each of the data objects;
receiving a search request comprising a plurality of search terms;
based on the index, for each particular term in the plurality of search terms, identifying a candidate set of data objects that are mapped to the particular term;
calculating priority scores for the data objects in the candidate sets based at least in part on one or more of;
a link analysis of the graph;
ormetadata describing structural constraints upon the data objects;
based on the graph, identifying one or more search result subgraphs, each comprising at least one data object from each of the candidate sets;
wherein identifying the one or more search result subgraphs comprises looking for subgraphs in an order that is based on the priority scores;
providing information indicating the one or more search result subgraphs in response to the search request;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
Highly relevant search results for unstructured queries are efficiently identified from normalized data. A server graphs relationships between each of the data objects. For each search term, the server identifies a candidate set of data objects mapped to the term. The server calculates priority scores for the candidate data objects based at least in part on one or more of: a link analysis of the graph; or an analysis of metadata describing structural constraints upon the candidate data objects. Based on the graph, the server identifies one or more search result subgraphs, each comprising at least one data object from each of the candidate sets. The server looks for subgraphs in an order that is based on the priority scores for the candidate data objects. The server may terminate its search early, in part because prioritizing the candidate data objects increases the likelihood of receiving relevant search results first.
-
Citations
30 Claims
-
1. A method comprising:
-
generating an index mapping data objects to terms associated with the data objects; generating a graph describing relationships between each of the data objects; receiving a search request comprising a plurality of search terms; based on the index, for each particular term in the plurality of search terms, identifying a candidate set of data objects that are mapped to the particular term; calculating priority scores for the data objects in the candidate sets based at least in part on one or more of; a link analysis of the graph;
ormetadata describing structural constraints upon the data objects; based on the graph, identifying one or more search result subgraphs, each comprising at least one data object from each of the candidate sets; wherein identifying the one or more search result subgraphs comprises looking for subgraphs in an order that is based on the priority scores; providing information indicating the one or more search result subgraphs in response to the search request; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. One or more non-transitory computer-readable media storing instructions that, when executed by one or more computing-devices, cause performance of:
-
generating an index mapping data objects to terms associated with the data objects; generating a graph describing relationships between each of the data objects; receiving a search request comprising a plurality of search terms; based on the index, for each particular term in the plurality of search terms, identifying a candidate set of data objects that are mapped to the particular term; calculating priority scores for the data objects in the candidate sets based at least in part on one or more of; a link analysis of the graph;
ormetadata describing structural constraints upon the data objects; based on the graph, identifying one or more search result subgraphs, each comprising at least one data object from each of the candidate sets; wherein identifying the one or more search result subgraphs comprises looking for subgraphs in an order that is based on the priority scores; providing information indicating the one or more search result subgraphs in response to the search request. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification