IP Library Granted Patent US 11,687,590
Granted Patent B2
US 11,687,590 · App. 15/442,518 · Granted Jun 27, 2023

Efficient index updating in a content management system

Inventor: Andrew Hind (Maidenhead, GB)
Assignee: Hyland UK Operations Limited
G06F16/901
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,687,590
App. No.
15/442,518
Granted
Jun 27, 2023
Kind
B2
Abstract

User permissions for a search on content managed by a content management system (CMS) can be evaluated in a search engine based on a user identity of a user providing a query input for the query rather than after return of an initial results set to the CMS or some other front-end application. The search engine can constrain possible results returned from a search for the query input using a content index of a plurality of content items maintained in a repository of the content management system. The constraining can include limiting the search engine from adding a content item of the plurality of content items to a permissions-filtered results set unless the evaluating of the user permissions and the search for the query input against the content index do not exclude the content item. Other aspects can support index updating by selective use of a metadata index.

Claims (60)

1. A computer-implemented method comprising:

indexing metadata for content items stored in a repository of a content management system, the indexing resulting in a current metadata index of the content management system, the metadata being associated with one or more content items in the content management system, change to a first type of metadata indicating a change in status and a change in the content of a content item and change to a second type of metadata indicating a change in status but no change in the content of the content item,

the metadata comprising at least one of a creation date, an edit date, a content access date, a content item size, a content item type or other information describing a corresponding indexed content item,

the content management system also including a content index for indexing content managed by the content management system, the metadata being indexed more frequently than the content index to support less frequent updating of the content index by way of:

identifying, based on the current metadata index, a set of content items in the repository that have undergone a change to content;

in response to the identifying, updating the content index for only the set of content items that have undergone the change to content without initiating a full re-indexing of the content of the content management system;

selectively updating a content cache for the content management system based on the set of content items that have undergone the change to content; and

merging the current metadata index and the content index into an updated content index for the content management system, in response to a scheduled or triggering event.

2. A computer-implemented method as in claim 1 , wherein a result set is provided in response to the query input, using dynamic faceting by which content items in the result set are used to determine facets that are likely to be of interest to the user.

3. A computer-implemented method as in claim 1 , further comprising:

generating a result set identifying matching content items in the content management system that match the query input;

accessing text of the matching content item from the result set using metadata of the matching content items;

returning textual context for a term of the query input from the content item; and

displaying, via a user interface, the textual context with the term highlighted.

4. A computer-implemented method as in claim 3 , further comprising updating the content cache concurrently with the content index, the content cache storing a full-text copy of content items managed by the content management system, the content cache configured to provide text excerpts showing where search terms of a query input occur within a matching content item from the content management system.

5. A computer-implemented method as in claim 4 , wherein the accessing of the text of the matching content item comprises performing a lookup in the content cache based on the metadata.

6. A computer-implemented method as in claim 3 , wherein the accessing of the text of the matching content item comprises directly accessing the matching content item in the repository of the content management system.

7. A computer-implemented method as in claim 3 , wherein the generating of the result set is performed by a search engine associated with the content management system, and wherein the method further comprises:

evaluating, in the search engine, user permissions based on a user identity of a user providing the query input; and

constraining, by the search engine, the result set based on the evaluating of the user permissions, the constraining comprising limiting the search engine from adding a content item of a plurality of content items to the result set unless the evaluating of the user permissions does not exclude the content item.

8. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed by at least one programmable processor, cause a computing system perform operations comprising:

indexing metadata for content items stored in a repository of a content management system, the indexing resulting in a current metadata index of the content management system, the metadata being associated with one or more content items in the content management system, change to a first type of metadata indicating a change in status and a change in the content of a content item and change to a second type of metadata indicating a change in status but no change in the content of the content item,

the metadata comprising at least one of a creation date, an edit date, a content access date, a content item size, a content item type or other information describing a corresponding indexed content item,

the content management system also including a content index for indexing content managed by the content management system, the metadata being indexed more frequently than the content index to support less frequent updating of the content index by way of:

identifying, based on the current metadata index, a set of content items in the repository that have undergone a change to content;

in response to the identifying, updating the content index for only the set of content items that have undergone the change to content without initiating a full re-indexing of the content of the content management system;

selectively updating a content cache for the content management system based on the set of content items that have undergone the change to content; and

merging the current metadata index and the content index into an updated content index for the content management system, in response to a scheduled or triggering event.

9. A computer program product as in claim 8 , wherein the more frequent indexing of metadata supports less frequent updating of the full content index.

10. A computer program product as in claim 8 , further comprising:

generating a result set identifying matching content items in the content management system that match the query input;

accessing text of the matching content item from the result set using metadata of the matching content items;

returning textual context for a term of the query input from the content item; and

displaying, via a user interface, the textual context with the term highlighted.

11. A computer program product as in claim 10 , further comprising updating the content cache concurrently with the content index.

12. A computer program product as in claim 11 , wherein the accessing of the text of the matching content item comprises performing a lookup in the content cache based on the metadata.

13. A computer program product as in claim 10 , wherein the metadata comprises at least one of a creation date, an edit date, a content access date, a file size, a file type or other information describing a corresponding indexed content.

14. A computer program product as in claim 10 , wherein the generating of the result set is performed by a search engine associated with the content management system, and wherein the method further comprises:

evaluating, in the search engine, user permissions based on a user identity of a user providing the query input; and

constraining, by the search engine, the result set based on the evaluating of the user permissions, the constraining comprising limiting the search engine from adding a content item of a plurality of content items to the result set unless the evaluating of the user permissions does not exclude the content item.

15. A computer-implemented system comprising:

computer hardware configured to execute instructions that when executed cause the system to perform operations comprising:

indexing metadata for content items stored in a repository of a content management system, the indexing resulting in a current metadata index of the content management system, the metadata being associated with one or more content items in the content management system, change to a first type of metadata indicating a change in status and a change in the content of a content item and change to a second type of metadata indicating a change in status but no change in the content of the content item,

the metadata comprising at least one of a creation date, an edit date, a content access date, a content item size, a content item type or other information describing a corresponding indexed content item,

the content management system also including a content index for indexing content managed by the content management system, the metadata being indexed more frequently than the content index to support less frequent updating of the content index by way of:

identifying, based on the current metadata index, a set of content items in the repository that have undergone a change to content;

in response to the identifying, updating the content index for only the set of content items that have undergone the change to content without initiating a full re-indexing of the content of the content management system;

selectively updating a content cache for the content management system based on the set of content items that have undergone the change to content; and

merging the current metadata index and the content index into an updated content index for the content management system, in response to a scheduled or triggering event.

16. A system as in claim 15 , wherein the merging occurs in response to a scheduled or triggering event.

17. A system as in claim 15 , further comprising:

generating a result set identifying matching content items in the content management system that match the query input;

accessing text of the matching content item from the result set using metadata of the matching content items;

returning textual context for a term of the query input from the content item; and

displaying, via a user interface, the textual context with the term highlighted.

18. A system as in claim 17 , further comprising updating the content cache concurrently with the content index.

19. A system as in claim 18 , wherein the accessing of the text of the matching content item comprises performing a lookup in the content cache based on the metadata.

20. A system as in claim 17 , wherein the generating of the result set is performed by a search engine associated with the content management system, and wherein the method further comprises:

evaluating the query input against the content index concurrently with evaluating the user permissions based on a user identity of a user providing the query input, generating a first evaluation result and a second evaluation result, respectively; and

combining the first evaluation result and the second evaluation result to limit the search engine from adding a content item of a plurality of content items to the result set thereby eliminating a need for post processing of the query results to eliminate results that the user does not have access permission to.

Assignments (11)
SECURITY INTEREST Recorded Jan 17, 2024
From: HYLAND UK OPERATIONS LIMITED
To: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
Reel/Frame 066339/0332 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 055820/0369 Recorded Sep 24, 2023
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT, A BRANCH OF CREDIT SUISSE
To: ALFRESCO SOFTWARE LIMITED (K/N/A HYLAND UK OPERATIONS LIMITED)
Reel/Frame 065018/0057 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 55820/0343 Recorded Sep 21, 2023
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT, A BRANCH OF CREDIT SUISSE
To: ALFRESCO SOFTWARE LIMITED (K/N/A HYLAND UK OPERATIONS LIMITED)
Reel/Frame 064974/0425 →
CHANGE OF NAME Recorded Oct 13, 2021
From: ALFRESCO SOFTWARE LIMITED
To: HYLAND UK OPERATIONS LIMITED
Reel/Frame 057909/0840 →
SECURITY AGREEMENT SUPPLEMENT (FIRST LIEN) Recorded Mar 26, 2021
From: ALFRESCO SOFTWARE LIMITED
To: CREDIT SUISSE
Reel/Frame 055820/0343 →
SECURITY AGREEMENT SUPPLEMENT (SECOND LIEN) Recorded Mar 26, 2021
From: ALFRESCO SOFTWARE LIMITED
To: CREDIT SUISSE
Reel/Frame 055820/0369 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2021
From: ALFRESCO SOFTWARE, INC.
To: ALFRESCO SOFTWARE LIMITED
Reel/Frame 054935/0642 →
RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 50372/0079 Recorded Oct 27, 2020
From: GUGGENHEIM CREDIT SERVICES, LLC, AS COLLATERAL AGENT
To: ALFRESCO SOFTWARE, INC.
Reel/Frame 054229/0133 →
NOTICE OF ASSIGNMENT OF PATENT SECURITY AGREEMENT RECORDED AT R/F 045602/0578 Recorded Sep 13, 2019
From: GUGGENHEIM CORPORATE FUNDING, LLC, AS RETIRING AGENT
To: GUGGENHEIM CREDIT SERVICES, LLC, AS SUCCESSOR AGENT
Reel/Frame 050372/0079 →
PATENT SECURITY AGREEMENT Recorded Mar 14, 2018
From: ALFRESCO SOFTWARE, INC.
To: GUGGENHEIM CORPORATE FUNDING, LLC
Reel/Frame 045602/0578 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2018
From: HIND, ANDREW
To: ALFRESCO SOFTWARE, INC.
Reel/Frame 044788/0297 →
Continuity (1)
Related Publication 20180246969A1 · Aug 30, 2018
Cited By (1)
US 12,259,924