You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
747B

  1. use clap::ArgMatches;
  2. use std::convert::From;
  3. use std::path::PathBuf;
  4. use tantivy;
  5. use tantivy::schema::{Schema, STRING, STORED, TEXT};
  6. use tantivy::Index;
  7. fn default_schema() -> Schema {
  8. let mut schema = Schema::new();
  9. schema.add_text_field("url", STRING | STORED);
  10. schema.add_text_field("title", TEXT | STORED);
  11. schema.add_text_field("body", TEXT | STORED);
  12. schema
  13. }
  14. pub fn run_new_cli(matches: &ArgMatches) -> tantivy::Result<()> {
  15. let index_directory = PathBuf::from(matches.value_of("index").unwrap());
  16. run_new(index_directory)
  17. }
  18. fn run_new(directory: PathBuf) -> tantivy::Result<()> {
  19. let schema = default_schema();
  20. let mut index = try!(Index::create(&directory, schema));
  21. index.save_metas()
  22. }