Methods and systems for optimizing text searches over structured data in a multi-tenant environment
First Claim
1. A computer program product, comprising a non-transitory memory medium having a computer readable program code embodied therein, the computer readable program code causing a computer to implement a method, the method comprising:
- providing a system accessible to a plurality of subscribers, where the system provides hosted third-party applications and content for a plurality of logically separate organizations, and where each subscriber is associated with at least one of the plurality of organizations;
providing, in the system, a set of logically separated storage areas, where each logically separated storage area is associated with a corresponding organization from the plurality of organizations and is inaccessible to organizations other than the corresponding organization;
storing, in the system, information describing the plurality of subscribers associated with each of the organizations;
receiving a first search request that includes a first search term from a subscriber of a organization of the plurality of organizations;
formulating, by the system, a search query that includes the first search term and information describing the subscriber;
performing, by the system, the search query within the logically separated storage area of the organization using the first search term and the information describing the subscriber, including performing the search query within a unique search index of the organization, the search index containing a plurality of data records, each of the plurality of data records within the search index including;
a last update field indicating a time when the record was last modified by any subscriber of the organization of the system;
at least one last activity field indicating a time when an action was last performed utilizing the record;
a record owner field indicating an owner of the record within the organization, anda record owner role field indicating a location of the owner of the record within a hierarchy of the organization; and
returning, by the system, a plurality of first data records within the unique search index that match the first search term and the information describing the subscriber, where the plurality of first data records are ordered based at least in part on one or more subscriber interactions with the plurality of first data records, the one or more interactions including actions by one or more additional subscribers of the organization of the system, and where the plurality of first data records are ordered by;
determining a normalized search relevancy score that is returned by a search engine for each of the plurality of first data records,assigning a last update score to each of the plurality of first data records based on a value of the last update field of each of the plurality of first data records,assigning a last activity score to each of the plurality of first data records based on a value of the last activity field of each of the plurality of first data records,multiplying each of the normalized search relevancy score, the last update score, and the at least one last activity score for each of the plurality of first data records by a unique predetermined weight factor to determine a final relevancy score for each of the plurality of first data records, andordering the plurality of first data records such that data records of the plurality of first data records having a higher final relevancy score are ranked higher than data records of the plurality of first data records having a lower final relevancy score.
1 Assignment
0 Petitions
Accused Products
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.
175 Citations
11 Claims
-
1. A computer program product, comprising a non-transitory memory medium having a computer readable program code embodied therein, the computer readable program code causing a computer to implement a method, the method comprising:
-
providing a system accessible to a plurality of subscribers, where the system provides hosted third-party applications and content for a plurality of logically separate organizations, and where each subscriber is associated with at least one of the plurality of organizations; providing, in the system, a set of logically separated storage areas, where each logically separated storage area is associated with a corresponding organization from the plurality of organizations and is inaccessible to organizations other than the corresponding organization; storing, in the system, information describing the plurality of subscribers associated with each of the organizations; receiving a first search request that includes a first search term from a subscriber of a organization of the plurality of organizations; formulating, by the system, a search query that includes the first search term and information describing the subscriber; performing, by the system, the search query within the logically separated storage area of the organization using the first search term and the information describing the subscriber, including performing the search query within a unique search index of the organization, the search index containing a plurality of data records, each of the plurality of data records within the search index including; a last update field indicating a time when the record was last modified by any subscriber of the organization of the system; at least one last activity field indicating a time when an action was last performed utilizing the record; a record owner field indicating an owner of the record within the organization, and a record owner role field indicating a location of the owner of the record within a hierarchy of the organization; and returning, by the system, a plurality of first data records within the unique search index that match the first search term and the information describing the subscriber, where the plurality of first data records are ordered based at least in part on one or more subscriber interactions with the plurality of first data records, the one or more interactions including actions by one or more additional subscribers of the organization of the system, and where the plurality of first data records are ordered by; determining a normalized search relevancy score that is returned by a search engine for each of the plurality of first data records, assigning a last update score to each of the plurality of first data records based on a value of the last update field of each of the plurality of first data records, assigning a last activity score to each of the plurality of first data records based on a value of the last activity field of each of the plurality of first data records, multiplying each of the normalized search relevancy score, the last update score, and the at least one last activity score for each of the plurality of first data records by a unique predetermined weight factor to determine a final relevancy score for each of the plurality of first data records, and ordering the plurality of first data records such that data records of the plurality of first data records having a higher final relevancy score are ranked higher than data records of the plurality of first data records having a lower final relevancy score. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method, comprising:
-
providing a system accessible to a plurality of subscribers, where the system provides hosted third-party applications and content for a plurality of logically separate organizations, and where each subscriber is associated with at least one of the plurality of organizations; providing, in the system, a set of logically separated storage areas, where each logically separated storage area is associated with a corresponding organization from the plurality of organizations and is inaccessible to organizations other than the corresponding organization; storing, in the system, information describing the plurality of subscribers associated with each of the organizations; receiving a first search request that includes a first search term from a subscriber of a organization of the plurality of organizations; formulating, by the system, a search query that includes the first search term and information describing the subscriber; performing, by the system, the search query within the logically separated storage area of the organization using the first search term and the information describing the subscriber, including performing the search query within a unique search index of the organization, the search index containing a plurality of data records, each of the plurality of data records within the search index including; a last update field indicating a time when the record was last modified by any subscriber of the organization of the system; at least one last activity field indicating a time when an action was last performed utilizing the record; a record owner field indicating an owner of the record within the organization, and a record owner role field indicating a location of the owner of the record within a hierarchy of the organization; and returning, by the system, a plurality of first data records within the unique search index that match the first search term and the information describing the subscriber, where the plurality of first data records are ordered based at least in part on one or more subscriber interactions with the plurality of first data records, the one or more interactions including actions by one or more additional subscribers of the organization of the system, and where the plurality of first data records are ordered by; determining a normalized search relevancy score that is returned by a search engine for each of the plurality of first data records, assigning a last update score to each of the plurality of first data records based on a value of the last update field of each of the plurality of first data records, assigning a last activity score to each of the plurality of first data records based on a value of the last activity field of each of the plurality of first data records, multiplying each of the normalized search relevancy score, the last update score, and the at least one last activity score for each of the plurality of first data records by a unique predetermined weight factor to determine a final relevancy score for each of the plurality of first data records, and ordering the plurality of first data records such that data records of the plurality of first data records having a higher final relevancy score are ranked higher than data records of the plurality of first data records having a lower final relevancy score. - View Dependent Claims (9)
-
-
10. An apparatus, comprising:
a processor for; providing a system accessible to a plurality of subscribers, where the system provides hosted third-party applications and content for a plurality of logically separate organizations, and where each subscriber is associated with at least one of the plurality of organizations; providing, in the system, a set of logically separated storage areas, where each logically separated storage area is associated with a corresponding organization from the plurality of organizations and is inaccessible to organizations other than the corresponding organization; storing, in the system, information describing the plurality of subscribers associated with each of the organizations; receiving a first search request that includes a first search term from a subscriber of a organization of the plurality of organizations; formulating, by the system, a search query that includes the first search term and information describing the subscriber; performing, by the system, the search query within the logically separated storage area of the organization using the first search term and the information describing the subscriber, including performing the search query within a unique search index of the organization, the search index containing a plurality of data records, each of the plurality of data records within the search index including; a last update field indicating a time when the record was last modified by any subscriber of the organization of the system; at least one last activity field indicating a time when an action was last performed utilizing the record; a record owner field indicating an owner of the record within the organization, and a record owner role field indicating a location of the owner of the record within a hierarchy of the organization; and returning, by the system, a plurality of first data records within the unique search index that match the first search term and the information describing the subscriber, where the plurality of first data records are ordered based at least in part on one or more subscriber interactions with the plurality of first data records, the one or more interactions including actions by one or more additional subscribers of the organization of the system, and where the plurality of first data records are ordered by; determining a normalized search relevancy score that is returned by a search engine for each of the plurality of first data records, assigning a last update score to each of the plurality of first data records based on a value of the last update field of each of the plurality of first data records, assigning a last activity score to each of the plurality of first data records based on a value of the last activity field of each of the plurality of first data records, multiplying each of the normalized search relevancy score, the last update score, and the at least one last activity score for each of the plurality of first data records by a unique predetermined weight factor to determine a final relevancy score for each of the plurality of first data records, and ordering the plurality of first data records such that data records of the plurality of first data records having a higher final relevancy score are ranked higher than data records of the plurality of first data records having a lower final relevancy score. - View Dependent Claims (11)
Specification