Curiosity has been designed from the ground up to provide a powerful enterprise search experience. 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.
The search box in a a Curiosity system provides a lot of advanced functionality out of the box:
- Autocomplete per data type (e.g. type "NA" and get an autocomplete suggestion for "NASA")
- Capturing of Entities on the query text (e.g. the user typed "A320" and it is recognized as an Airbus A320 aircraft)
- Date parsing for intervals (e.g. "reports since 2019")
- Acronyms and Abbreviations recognition (e.g. type ABC and get search results for Advisory Board on Cat Diseases)
- Machine Learning and Manually Configured Synonyms
- Filtering shortcuts (e.g. ext:pdf or is:file)
- Data Sources (e.g. src:NASA)
Check the Search Query Parsing article for more information on how to configure the intelligent search box on your Curiosity deployment.