Permissions-aware search with user suggested results and document verification
Methods and apparatuses for providing a permissions-aware search and knowledge management system that incorporates user suggested results, document verification, and intelligent user activity tracking across group hierarchies to improve the quality and relevance of search results are described. The permissions-aware search and knowledge management system may enable content stored across a variety of local and cloud-based data stores to be indexed, searched, and displayed to authorized users. The identification and ranking of relevant documents corresponding with a user's search query may take into account user suggested results from the user and others assigned to the same group as the user, whether the underlying content of a search result was verified by a content owner as being up-to-date, the amount of time that has passed since the underlying content was verified by the content owner, and the recent activity of the user and related group members.
1 . A method, comprising:
identifying a set of relevant documents from a search index based on a search query, wherein the set of relevant documents includes a first document;
determining a set of user suggested results associated with the set of relevant documents, wherein the set of user suggested results includes a first user suggested result associated with the first document;
determining a verification state for at least a portion of the first document, wherein determining the verification state comprises:
determining whether content of the first document has been verified by an owner of the content as up-to-date and correct;
determining whether a threshold amount of time has elapsed since a most recent verification of the content by the owner; and
boosting a ranking of the first document within the set of relevant documents based on the determined verification state for at least the portion of the first document and the first user suggested result of the set of user suggested results; and
outputting at least a subset of the set of relevant documents based on the boosted ranking of the first document within the set of relevant documents.
2 . The method of claim 1 , further comprising:
determining an amount of time that has elapsed since the first user suggested result was established; and
ranking the set of relevant documents based on search query affinity to the set of user suggested results for the set of relevant documents and the amount of time that has elapsed since the first user suggested result was established, the ranking the set of relevant documents includes boosting a ranking of the first document based on the amount of time that has elapsed since the first user suggested result was established.
3 . The method of claim 1 , further comprising:
detecting that the portion of the first document was verified by a first owner of the first document, the first owner is associated with a first owner identifier;
identifying a set of owner identifiers for the set of relevant documents, the set of owner identifiers includes the first owner identifier;
determining a set of relationship distances for the set of relevant documents using the set of owner identifiers for the set of relevant documents; and
ranking the set of relevant documents based on the set of relationship distances for the set of relevant documents.
4 . The method of claim 1 , wherein:
the set of user suggested results for the set of relevant documents comprises a set of pinned search queries for the set of relevant documents.
5 . The method of claim 1 , wherein the first user suggested result comprises a first pinned search query that was established prior to acquiring the search query.
6 . The method of claim 5 , further comprising:
identifying a user identifier associated with the search query; and
determining that the user identifier is authorized to access the set of relevant documents, the identifying the set of relevant documents from the search index includes identifying the set of relevant documents in response to determining that the user identifier is authorized to access each of the set of relevant documents.
7 . The method of claim 6 , wherein:
the identifying the set of relevant documents from the search index includes augmenting a request to the search index for the set of relevant documents with permission information associated with a user identifier for the search query and acquiring the set of relevant documents from the search index such that the user identifier has permission to view each of the set of relevant documents; and
the outputting at least the subset of the set of relevant documents includes displaying at least the subset of the set of relevant documents based on the ranking of the set of relevant documents.
8 . The method of claim 1 , further comprising:
determining a number of pinned search queries per document for each of the set of relevant documents, the ranking the set of relevant documents includes ranking the set of relevant documents based on the number of pinned search queries per document for each of the set of relevant documents.
9 . The method of claim 1 , further comprising:
identifying a set of verified states corresponding with the set of relevant documents; and
ranking the set of relevant documents based on the set of verified states.
10 . The method of claim 1 , wherein:
the search query is acquired from a computing device; and
the outputting at least the subset of the set of relevant documents includes transmitting the at least the subset of the set of relevant documents to the computing device.
11 . A search system, comprising:
a memory; and
a processing device operatively coupled to the memory, the processing device configured to:
identify a set of relevant documents from a search index based on a search query, wherein the set of relevant documents includes a first document;
determine a set of user suggested results associated with the set of relevant documents, wherein the set of user suggested results includes a first user suggested result associated with the first document;
determine a verification state for at least a portion of the first document, wherein to determine the verification state the processing device is configured to:
determine whether content of the first document has been verified by an owner of the content as up-to-date and correct; and
determine whether a threshold amount of time has elapsed since a most recent verification of the content by the owner; and
boost a ranking of the first document within the set of relevant documents based on the determined verification state for at least the portion of the first document; and
output at least a subset of the set of relevant documents based on the boosted ranking of the first document within the set of relevant documents.
12 . The search system of claim 11 , wherein the processing device is further configured to:
determine an amount of time that has elapsed since the first user suggested result was established; and
rank the set of relevant documents based on search query affinity to the set of user suggested results for the set of relevant documents and the amount of time that has elapsed since the first user suggested result was established, the ranking the set of relevant documents includes boosting the ranking of the first document based on the amount of time that has elapsed since the first user suggested result was established.
13 . The search system of claim 11 , wherein the processing device is further configured to:
detect that the at least the portion of the first document was verified by a first owner of the first document, the first owner is associated with a first owner identifier;
identify a set of owner identifiers for the set of relevant documents, the set of owner identifiers includes the first owner identifier;
determine a set of relationship distances for the set of relevant documents using the set of owner identifiers for the set of relevant documents; and
determine the set of relevant documents based on the set of relationship distances for the set of relevant documents.
14 . The search system of claim 11 , wherein:
the set of user suggested results for the set of relevant documents comprises a set of pinned search queries for the set of relevant documents.
15 . The search system of claim 11 , wherein the processing device is further configured to:
acquire the search query, wherein the first user suggested result comprises a first pinned search query that was established prior to acquisition of the search query.
16 . The search system of claim 15 , wherein the processing device is further configured to:
identify a user identifier associated with the search query; and
detect that the user identifier is authorized to access the set of relevant documents, the identifying the set of relevant documents from the search index includes identifying the set of relevant documents in response to detecting that the user identifier is authorized to access each of the set of relevant documents.
17 . The search system of claim 16 , wherein: to identify the set of relevant documents from the search index the processing device is configured to:
augment a request to the search index for the set of relevant documents with permission information associated with the user identifier for the search query; and
acquire the set of relevant documents from the search index such that the user identifier has permission to view each of the set of relevant documents; and
to output at least the subset of the set of relevant documents the processing device is configured to display at least the subset of the set of relevant documents based on the ranking of the set of relevant documents.
18 . The search system of claim 11 , wherein the processing device is further configured to:
determine a number of pinned search queries per document for each of the set of relevant documents, the ranking the set of relevant documents includes ranking the set of relevant documents based on the number of pinned search queries per document for each of the set of relevant documents.
19 . The search system of claim 11 , wherein:
the first user suggested result includes a term that does not exist within the first document.
20 . A non-transitory computer-readable storage medium having instructions stored thereon that, when executed by a processing device, cause the processing device to:
identify a set of relevant documents from a search index based on a search query, wherein the set of relevant documents includes a first document;
determine a set of user suggested results associated with the set of relevant documents, wherein the set of user suggested results includes a first user suggested result associated with the first document;
determine a verification state for at least a portion of the first document, wherein to determine the verification state the processing device is configured to:
determine whether content of the first document has been verified by an owner of the content as up-to-date and correct; and
determine whether a threshold amount of time has elapsed since a most recent verification of the content by the owner; and
boost a ranking of the first document within the set of relevant documents based on the determined verification state for at least the portion of the first document and the first user suggested result of the set of user suggested results; and
output at least a subset of the set of relevant documents based on the boosted ranking of the first document within the set of relevant documents.