A highly optimized search engine built in C# to filter strings from datasets based on word prefixes. Developed to practice OOP, complex data structures, and algorithms.
Utilizes a custom Trie data structure for very fast, memory efficient prefix lookups. Indexing time complexity is O(N) (where N is the total number of characters in the dataset).
Datasets are separated into searchable words based on spaces.
The architecture allows chaining an infinite number of logical filters (AndOperator, OrOperator, WordFilter) into a single query tree.
Returns entries containing both prefix conditions (uses set intersection).
Returns entries containing at least one prefix condition (uses set union).
"Today is Sunday"
"Today is not Monday"
"Tomorrow is Tuesday"
"Tomorrow isn’t Wednesday"
"Today is Sunday"
Applying the condition Tod && Sun using the AndOperator to search for words starting with those prefixes.
"Today is Sunday"