Search Engine

A good search experience starts way before the user types the first letter in the search box. The system first needs to ingest, extract, parse and index all data.

In order for your data to be searchable in a performant way, it needs to be first indexed in a way that a computer can quickly find which document contains which words or sequence of words. Full Text Indexes are used for this task. Without them, search times would scale linearly with the size of your data. Indexed search happens in two phases:

  • At index-time the system creates the index; this is a one-off operation (although repeated if and when your data changes)

  • At search-time, when the user sends a request to the system, the index is then queried to quickly identify and return all the data that contain the query term(s).

In order to enhance your search experience, facets (or filters) can be used to narrow down the results to what the user is actually searching for. Similarly to the Text Search, Property Indexes are used for this task. Property Indexes can store information such as:

  • Flag-like text (e.g. a field Status with possible values: Open / Closed / Duplicate)

  • Time data (e.g. 01/01/2020)

  • Numeric values (eg.. 123.45)

  • Locations (coming soon...)

Curiosity also supports a special type of Related Facet that is derived from the connections of the results on the knowledge graph.

Last updated