What approaches are there to not display a search result that a user has no permission to see?
Since you aren't sure which software you would like to use, I can explain this concept only in general, by example. The clearest example is a content management system like Drupal or Wordpress (not necessarily a data science tool but the idea is the same).

In a content management system, there are different types of content which can be accessed. In your case, there would be two types - document type A and document type B. There can be an unlimited number of documents, each assigned one or more types. 

The software has a permission system that gives access to each document type. This is built with roles. In your example, there would be a system administrator role, and a general user role.

Each role has permissions associated with it. You would configure system administrator to be allowed to view document types A and B, but you would configure general users to only be able to see document type A.

Each user registers an account in the software system. A site administrator assigns each account one or more roles. So a user with the system administrator role would be able to see all documents of type A and B. However, if a user only has the general user role, they would only be able to see documents of type A. Also noteworthy is the fact that each user can have multiple roles and will get all permissions associated with every role they have.

USER -has-> ROLE(s)

ROLE -has-> PERMISSION(s)

CONTENT TYPE -requires-> PERMISSION(s)

Every time the content is requested, the software system ensures that the user making the request has the permission to access the content.

When a search is run, the software system has to validate every potential result individually before displaying the search results to the user. The user must have the permission to see each piece of content that is be delivered back from the search.