diff --git a/Cargo.toml b/Cargo.toml index d778ce63b..89cd51f41 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ git = "https://github.com/Kerollmops/fst.git" branch = "automaton-for-deref" [features] -default = ["index-csv", "serve-http", "serve-console"] +default = ["index-csv", "serve-http"] index-jsonlines = ["index", "serde_json"] index-csv = ["index", "csv"] diff --git a/README.md b/README.md index 6151b7684..a7aec19f3 100644 --- a/README.md +++ b/README.md @@ -6,20 +6,22 @@ Raptor, the new RISE First you need to generate the index files. ```bash -$ cargo build --release --bin raptor-indexer -$ time ./target/release/raptor-indexer products.json_lines +$ cargo build --release +$ time ./target/release/raptor-cli index csv --stop-words stop-words.txt the-csv-file.csv ``` +The `stop-words.txt` file here is a simple file that contains one stop word by line. + Once the command finished indexing you will have 3 files that compose the index: - The `xxx.map` represent the fst map. - The `xxx.idx` represent the doc indexes matching the words in the map. - The `xxx.sst` is a file that contains all the fields and the values asociated with it, it is passed to the internal RocksDB. -Now you can easily use `raptor-search` or `raptor-http` with only the prefix name of the files. (e.g. relaxed-colden). +Now you can easily use `raptor server console` or `raptor serve http` with the name of the dump. (e.g. relaxed-colden). ```bash -$ cargo run --bin raptor-search -- relaxed-colden -$ cargo run --bin raptor-http -- relaxed-colden +$ cargo build --release --default-features --features serve-console +$ ./target/release/raptor-cli serve console --stop-words stop-words.txt relaxed-colden ``` Note: If you have performance issues run the searcher in release mode (i.e. `--release`). diff --git a/src/main.rs b/src/main.rs index ff1bb146d..ebcddb09c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,7 +10,7 @@ use structopt::StructOpt; #[derive(Debug, StructOpt)] #[structopt(name = "raptor-cli", about = "A command line to do raptor operations.")] -enum Commands { +enum Command { #[cfg(feature = "index")] /// Index files of different format. #[structopt(name = "index")] @@ -23,10 +23,10 @@ enum Commands { } fn main() { - let ret = match Commands::from_args() { + let ret = match Command::from_args() { #[cfg(feature = "index")] - Commands::Index(i) => match i { + Command::Index(i) => match i { #[cfg(feature = "index-jsonlines")] index::CommandIndex::JsonLines(command) => index::jsonlines_feature::json_lines(command), @@ -36,7 +36,7 @@ fn main() { }, #[cfg(feature = "serve")] - Commands::Serve(s) => match s { + Command::Serve(s) => match s { #[cfg(feature = "serve-http")] serve::CommandServe::Http(command) => serve::http_feature::http(command), diff --git a/src/serve/http.rs b/src/serve/http.rs index 2ec63050a..90487e832 100644 --- a/src/serve/http.rs +++ b/src/serve/http.rs @@ -21,6 +21,9 @@ struct Document<'a> { image: &'a str, } +#[derive(Debug, Deserialize)] +struct SearchQuery { q: String } + pub struct HttpServer { listen_addr: SocketAddr, common_words: Arc, @@ -28,9 +31,6 @@ pub struct HttpServer { db: Arc, } -#[derive(Debug, Deserialize)] -struct SearchQuery { q: String } - impl HttpServer { pub fn from_command(command: CommandHttp) -> io::Result { let common_words = common_words::from_file(command.stop_words)?;