Methods and systems for optimizing text searches over structured data in a multi-tenant environment

US9465847B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9465847-B2
Application numberUS-201213589011-A
CountryUS
Kind codeB2
Filing dateAug 17, 2012
Priority dateDec 2, 2005
Publication dateOct 11, 2016
Grant dateOct 11, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of performing a text search over structured data in a system, the method comprising: receiving, at the system, a search request including a first search parameter from a user of the system, wherein the search request is for objects matching the first search parameter; in response to receiving the search request, formulating, by the system, a search query including the first search parameter received from the user; identifying a cache of the system that stores cached objects copied from objects that are created and stored within the system and that are associated with a predetermined group of system users; performing, by the system, a first search of the cache using the first search parameter to identify a first list of cached objects stored in the cache of the system that match the first search parameter; returning, by the system, a result of the first search including the first list of cached objects stored in the cache of the system that match the first search parameter; sending, by the system, the search query to a query server of the system for performing a second search within the system using the first search parameter to identify a second list of objects created and stored within the system that are associated with the predetermined group of system users and that match the first search parameter, each of the objects identified by the query server including: a last update field indicating a time when the object was last modified by a subscriber of an organization of the system, at least one last activity field indicating a time when an action was last performed utilizing the object, an owner field indicating an owner of the object within the organization, and an owner role field indicating a location of the owner of the object within a hierarchy of the organization; receiving a result of the second search including the second list of objects created and stored within the system that are associated with the predetermined group of system users and that match the first search parameter; combining, by the system, the first list of cached objects and the second list of objects to form a combined list of search results; and ordering the combined list of search results by: determining a corresponding normalized search relevancy score that is returned by a search engine for each of the objects from the first list and for each of the objects from the second list, assigning a corresponding last update score to each of the objects from the first list and to each of the objects from the second list based on a value of the last update field of each of the objects from the first list and of each of the objects from the second list, assigning a corresponding last activity score to each of the objects from the first list and to each of the objects from the second list based on a value of the last activity field of each of the objects from the first list and of each of the objects from the second list, for each of the objects from the first list and for each of the objects from the second list, multiplying each of the corresponding normalized search relevancy score, corresponding last update score, and corresponding last activity score by respective predetermined weight factors to determine a final relevancy score for each of the objects from the first list and for each of the objects from the second list, and ordering the objects from the first list and the objects from the second list such that objects having a higher final relevancy score are ranked higher than objects having a lower final relevancy score. 2. The method of claim 1 , wherein the system includes a multi-tenant database system accessible to a plurality of tenants. 3. The method of claim 2 , wherein the multi-tenant database system includes logically separated storage areas for each of the tenants, so that data in a storage area of one tenant is inaccessible to the other tenants. 4. The method of claim 3 , further comprising storing information describing subscribers of each of the tenants. 5. The method of claim 4 , wherein the multi-tenant database system is accessible to a plurality of different devices of each of the subscribers of the tenants, such that each subscriber of a particular tenant is capable of accessing the storage area of the particular tenant from any one of the different devices of the subscriber. 6. The method of claim 1 , wherein the cached objects stored in the cache are a copy of objects stored in the system that have each been modified by the user. 7. The method of claim 1 , wherein the objects in the system are indexed, such that the second search is performed on the indexed objects. 8. The method of claim 1 , wherein the relevancy scores for at least a portion of the objects in the second list are based on activity data for the objects indicating search-independent activity performed independently of a search. 9. The method of claim 1 , wherein the second search is performed independently of an identifier of the user. 10. The method of claim 1 , wherein the second search is performed based on an identifier of the user. 11. The method of claim 1 , further comprising filtering the results of the second search based on permissions for the user such that the second list of objects represents the filtered result. 12. The method of claim 1 , wherein the cache of cached objects is generated prior to the formulating of the search query. 13. The method of claim 1 , wherein the cache and the objects created and stored within the system that are associated with the group of system users including the user are stored in the same database. 14. The method of claim 1 , wherein the cache is created by the system and is stored separately from a database containing the objects created and stored within the system that are associated with the group of system users including the user. 15. The method of claim 1 , wherein access to the objects that are created and stored within the system and that are associated with a predetermined group of system users is kept separate from access to objects associated with additional predetermined groups of system users. 16. A system, comprising: a processor for: receiving a search request including a first search parameter from a user of the system, wherein the search request is for objects matching the first search parameter; in response to receiving the search request, formulating a search query including the first search parameter received from the user; identifying a cache of the system that stores cached objects copied from objects that are created and stored within the system and that are associated with a predetermined group of system users; performing a first search of the cache, using the first search parameter to identify a first list of cached objects stored in the cache of the system that match the first search parameter; returning a result of the first search including the first list of cached objects stored in the cache of the system that match the first search parameter; sending the search query to a query server of the system for performing a second search within the system using the first search parameter to identify a second list of objects created and stored within the system that are associated with the predetermined group of system users and that match the first search parameter, each of the of objects identified by the query server including: a last update field indicating a time when the object was last modified by a subscriber of an organization of the system, at least one last activity field indicating a time when an act

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9465847B2 cover?
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…
Who is the assignee on this patent?
Oliver Kevin, Hansma Scott, Weissman Craig, and 3 more
What technology area does this patent fall under?
Primary CPC classification G06F16/24578. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 11 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).