Searching behind the scenes

When you run a search in Relativity, depending on your data set, sometimes it takes a while for the search to return results. That's because there's a lot going on behind the scenes that can affect the speed of the search. This page explains the processes that the system goes through in order to execute the searches that you build in Relativity and to present the results to you in an item list. This information is designed for reference purposes only and doesn't include any required user action items.

Note: By default, Relativity doesn’t check object security when executing a search, only Document security.

Building the search in Relativity

Before Relativity can execute a search and return results to you in an item list, the system first constructs the search to determine which searches need to be part of the search that you're running and how to pass the results between them.

This is necessary in situations in which the search you're running references other saved searches. If you're running an isolated search that doesn't require existing saved searches as conditions, then this construction isn't necessary. In this case, the leaf search described below actually becomes the root search, as no other search relies upon its output.

The following searches are involved in a first pass construction of a complex search:

  • Root search - the search you're running in Relativity.
  • Branch search - a saved search that relies upon the output of a leaf search and is then referenced by the search you're running (the root search).
  • Leaf search - a saved search that doesn't rely on the output of another saved search but is referenced by a branch search.

In the following abstract example, the system constructs a search that's based on the root that you're running, which references two levels of saved searches and works to the left from the leaf searches. Once it applies the conditions and relational filter for Leaf 1 and Leaf 2, it has the information needed to build Branch 1 (but not yet Branch 2, Branch 3, or Root). Once the system completes Branch 1, it can move on to Branch 2 and 3 and then proceed to the Root search on the left, which is the search you're running.

 

Searching behind the scenes abstract

The following scenario provides an example of a first pass construction of a conflict check search, as described in the Advice recipe Using saved searches to complete conflict checks.

For details on how the system executes an internal search based on the constructions in the above abstract and scenario, see Executing the search in Relativity.

Executing the search in Relativity

Once Relativity builds the complex search that you've started to run, it executes that search through the following process before sending the results back to you in an item list.

To execute the search, the system:

  1. Applies conditions to the leaf searches. This includes:
    • Anything added as a condition on a search or view, not applied through a filter. This includes folder restrictions set through the Selected Folders choice on the Scope field on the saved search.
      Conditions for searching notes
    • The search index, which is any search provider (dtSearch, Analytics, Keyword Search, and custom search providers).
      Search conditions for technical notes
    • Document permissions.
  2. Applies relational filters to the leaf searches. This includes places in which you’ve included family or duplicates, whether you’ve done so from the search page or the item list.
  3. Re-applies document permissions to the leaf searches.
  4. Applies conditions to the branch searches. For branch searches, this includes:
    • Anything added as a condition on a search or view, not applied through a filter. This includes folder restrictions set through the Selected Folders choice on the Scope field on the saved search.
      Scope selected folders for searching notes
    • Filtering by all child searches.
    • The search index, which is any search provider (dtSearch, Analytics, Keyword Search, and custom search providers).
    • Document permissions.
  5. Applies relational filters to the branch searches. This includes places in which you’ve included family or duplicates, whether you’ve done so from the search page or the item list.
  6. Re-applies Document permissions to the branch searches.
  7. Applies conditions to the root search. For the root search, this includes:
    • Anything added as a condition on a search or view, not applied through a filter. This includes folder restrictions set through the Selected Folders choice on the Scope field on the saved search.
    • Filtering by all child searches.
    • The search index – any search provider (dtSearch, Analytics, Keyword Search, and custom search providers).
    • The folder browser, cluster browser, or so on.

    • Document permissions.
  8. Applies relational filters to the root search. This includes places in which you’ve included family or duplicates, whether you’ve done so from the search page or the item list.
  9. Re-applies Document permissions to the root search.

See Returning the search results for information on how Relativity actually shows the results of the search that it executed through the behind-the-scenes operations described in this section.

Returning the search results

Once the system completes all the steps for the internal execution of a search, it performs the following steps to display the results of that search in an item list.

Starting with the root search, Relativity applies:

  1. Anything in the pop-out conditions pane on the item list, specifically through the Add a condition option. Note that a view is its own root search.
    Popout conditions for searching notes
  2. The relational filter on the item list.
  3. Document permissions again.
  4. Any filters on the item list. This includes anything you've applied through the filter interface on the item list and nothing else.
  5. Sort conditions:
    • If you selected no columns on the view, Relativity uses the root search or the view’s sort.
    • If you selected a column, Relativity sorts by that column (ascending or descending, depending on which one you selected) and then ArtifactID in ascending order.

Once Relativity applies these items, it displays all search returns to you in an item list.