Apparatus and method for supplying path protected search results from a semi-structured document database
An apparatus has a processor and a memory connected to the processor. The memory stores instructions executed by the processor to traverse paths of a document with semi-structured data. For each path that is unprotected, a term at a terminating node of the path is added to an index as a query term. For each path that is protected, a term at a terminating node of the path is combined with a permission to form a combined query term that is added to the index.
1. An apparatus, comprising:
a processor; and
a memory connected to the processor, the memory storing instructions executed by the processor to:
traverse paths of a document with semi-structured data,
for each path that is unprotected add a term at a terminating node of an unprotected path to an index as a query term and for each path that is protected combine the term at a terminating node of a protected path with a permission to form a combined query term that is added to the index;
wherein the memory stores the index and a semi-structured document database including a collection of documents having semi-structured data; and
wherein the memory stores a query processor with instructions executed by the processor to form from a received query an expanded query including a received search term and a permission associated with a user submitting the received query, the query processor comparing the expanded query to combined query terms in the index to block document access when the user does not have protected path permission and returning query results when the expanded query matches a combined query term in the index.
2. The apparatus of claim 1 wherein the collection of documents includes XML documents and JSON documents.
3. The apparatus of claim 1 wherein the permission is based upon a role of an individual.
4. The apparatus of claim 1 wherein a terminating node of a path is an XML element.
5. The apparatus of claim 1 wherein a terminating node of a path is a JSON property.
6. The apparatus of claim 1 wherein the instructions executed by the processor include instructions to combine the term at the terminating node of the protected path with a plurality of permissions to form the combined query term that is added to the index.