Methods and systems for optimizing text searches over structured data in a multi-tenant environment
Assigneesalesforce.com, inc.
InventorsKevin Oliver, Scott Hansma, Craig Weissman, Paul Nakada, Jeanine Walters
Life of this patent
Estimating the term…
Abstract
Search systems and methods for searching structured data and enhancing the relevancy of search results provided to a requesting user or application. Enhanced search results are provided by searching a cache of a user's most recently used items to eliminate or reduce search indexing latency. Also, more relevant search results are provided by re-ranking results based on use history, data security models and/or hierarchical user role models. Further, enhanced search results are provided by including user information in the search index.
Claims20
A method, comprising:
- storing, by a multi-tenant computer system, a data set including a plurality of data records, wherein the data set is associated with a particular tenant, wherein each of the plurality of data records includes data and metadata;
- formulating, by the multi-tenant computer system, a search query for the data set, wherein the search query is based on input from a user associated with the particular tenant;
- performing, with the multi-tenant computer system, the search query on the data set, wherein the performing includes identifying one or more data records with respective textual data entries that correspond to the search query and determining a respective relevancy score for ones of the data records that were identified, wherein the relevancy score for a given data record is based on one or more matches between the search query and the data of the given data record;
- modifying, by the multi-tenant computer system, respective relevancy scores of a set of identified data records, wherein the modifying includes:
- normalizing the respective relevancy scores for the set of identified data records with a normalization function,
- assigning, based on a last update field of the set of identified data records, a first set of respective last update scores for the set of identified data records, wherein the respective last update scores are based on respective first times that a user modified the respective identified data records and are assigned from a list of potential last update scores corresponding to different periods of time;
- assigning, based on a last activity field of the set of identified data records, a separate, second set of respective last activity scores for the set of identified data records, wherein the respective last activity scores are based on respective second times that a user performed any action with the respective identified data records and are assigned from a list of potential last activity scores corresponding to different periods of time;
- applying weights to the normalized respective relevancy scores, respective last update scores, and respective last activity scores;
- and
- calculating respective modified relevancy scores for the set of identified data records by summing the weighted normalized respective relevancy score, weighted respective last update score, and weighted respective last activity score for respective identified data records in the set of identified data records;
- and
- ranking, with the multi-tenant computer system, the data records in the set of identified data records according to the modified relevancy scores.
A non-transitory, computer readable storage medium storing instructions that when executed by a multi-tenant computer system cause the multi-tenant computer system to perform operations comprising:
- storing a data set including a plurality of data records, wherein the data set is associated with a particular tenant, wherein each of the plurality of data records includes data and metadata;
- formulating a search query for the data set, wherein the search query is based on input from a user associated with the particular tenant;
- performing the search query on the data set, wherein the performing includes identifying one or more data records with respective textual data entries that correspond to the search query and determining a respective relevancy score for ones of the data records that were identified, wherein the relevancy score for a given data record is based on one or more matches between the search query and the data of the given data record;
- modifying respective relevancy scores of a set of identified data records, wherein the modifying includes:
- normalizing the respective relevancy scores for the set of identified data records,
- assigning, based on a last update field of the set of identified data records, a first set of respective last update scores for the set of identified data records, wherein the respective last update scores are based on respective first times that a user modified the respective identified data records and are assigned from a list of potential last update scores corresponding to different periods of time;
- assigning, based on a last activity field of the set of identified data records, a separate, second set of respective last activity scores for the set of identified data records, wherein the respective last activity scores are based on respective second times that a user performed any action with the respective identified data records and are assigned from a list of potential last activity scores corresponding to different periods of time;
- applying weights to the normalized respective relevancy scores, respective last update scores, and respective last activity scores;
- and
- calculating respective modified relevancy scores for the set of identified data records by summing the weighted normalized respective relevancy score, weighted respective last update score, and weighted respective last activity score for respective identified data records in the set of identified data records;
- and
- ranking the data records in the set of identified data records according to the modified relevancy scores.
A multi-tenant computer system comprising:
- a computer processor circuit;
- a non-transitory, computer readable storage medium storing instructions that when executed by the computer processor circuit cause the multi-tenant computer system to perform operations comprising:
- storing a data set including a plurality of data records, wherein the data set is associated with a particular tenant, wherein each of the plurality of data records includes data and metadata;
- formulating a search query for the data set, wherein the search query is based on input from a user associated with the particular tenant;
- performing the search query on the data set, wherein the performing includes identifying one or more data records with respective textual data entries that correspond to the search query and determining a respective relevancy score for ones of the data records that were identified, wherein the relevancy score for a given data record is based on one or more matches between the search query and the data of the given data record;
- modifying respective relevancy scores of a set of identified data records, wherein the modifying includes:
- normalizing the respective relevancy scores for the set of identified data records,
- assigning, based on a last update field of the set of identified data records, a first set of respective last update scores for the set of identified data records, wherein the respective last update scores are based on respective first times that a user modified the respective identified data records and are assigned from a list of potential last update scores corresponding to different periods of time;
- assigning, based on a last activity field of the set of identified data records, a separate, second set of respective last activity scores for the set of identified data records, wherein the respective last activity scores are based on respective second times that a user performed any action with the respective identified data records and are assigned from a list of potential last activity scores corresponding to different periods of time;
- applying weights to the normalized respective relevancy scores, respective last update scores, and respective last activity scores;
- and
- calculating respective modified relevancy scores for the set of identified data records by summing the weighted normalized respective relevancy score, weighted respective last update score, and weighted respective last activity score for respective identified data records in the set of identified data records;
- and
- ranking the data records in the set of identified data records according to the modified relevancy scores.
Dependencies are inferred from the claim text.