Goolean is a boolean model search engine that allows users to perform boolean queries on a dataset of documents (corpus). The system consists of an engine that processes and indexes documents and a shell that interact with the engine through a set of commands.
- Command-line Shell: Provides an interface to interact with the engine.
- Boolean Query Support: Supports AND, OR, and NOT operations.
- Document Indexing: Efficiently indexes documents for fast retrieval.
- Query Optimization: Optimizes queries for better performance. (under construction)
- File Management: Allows adding new files and listing indexed documents.
- Shell: Accepts user commands and communicates with the engine.
- Engine: Processes queries and retrieves relevant documents.
- Loader: Loads documents into the system.
- Normalizer: Prepares text by cleaning and standardizing it.
- Indexer: Indexes documents for searching.
- Query Constructor: Parses and builds the query.
- Query Optimizer: Improves query execution efficiency. (Under construction)
-
query
: Query the engine for a keyword or a boolean expression- Usage:
query <keyword> | <expression>
- Usage:
-
list
: List all documents, displayable by name or/and path or/and ID or/and extension Use -sortby to sort results by name, path, id or extension Use -n to limit the number of results Default fields order:-id
-name
-path
-ext
Default sortby:id
Default limit:all
- Usage:
list <-id | -name | -path | -ext> [-n <limit>] [-sortby <name | path | id | -ext>]
- Usage:
-
load
: Load a new document into the engine- Usage:
load <document_path>
- Usage:
-
find
: Find a document by name or id. Display the document's id, name and path Default search field: -name- Usage:
find <-id | -name> <value> || find <document_name>
- Usage:
-
exit
: Exit the shell- Usage:
exit
- Usage:
-
help
: List all available commands- Usage:
help
- Usage:
-
clear
: Clear the screen- Usage:
clear
- Usage:
-
open
: Open a document by ID in the default editor- Usage:
open <document_id>
- Usage:
engine-stats
: Displays the total number of documents and keys in the engine.- Usage:
Reserved for the shell
- Usage:
- Clone the repository:
git clone https://github.com/CS80-Team/Goolean/ cd Goolean
- Build the project:
make build cd bin/ ./goolean