From 8bb45956d4bfe5031a8bfaab0b3fcd0b21fd4123 Mon Sep 17 00:00:00 2001 From: Tamo Date: Mon, 7 Mar 2022 14:55:13 +0100 Subject: [PATCH] allow to set the primary key in the cli --- cli/src/main.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/cli/src/main.rs b/cli/src/main.rs index f349325a7..503b02887 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -11,7 +11,7 @@ use indicatif::{MultiProgress, ProgressBar, ProgressStyle}; use milli::update::UpdateIndexingStep::{ ComputeIdsAndMergeDocuments, IndexDocuments, MergeDataIntoFinalDatabase, RemapDocumentAddition, }; -use milli::update::{IndexDocumentsConfig, IndexDocumentsMethod, IndexerConfig}; +use milli::update::{self, IndexDocumentsConfig, IndexDocumentsMethod, IndexerConfig}; use milli::Index; use serde_json::{Map, Value}; use structopt::StructOpt; @@ -191,6 +191,9 @@ struct DocumentAddition { /// Path to the update file, if not present, will read from stdin. #[structopt(short, long)] path: Option, + /// Specify the primary key. + #[structopt(long)] + primary: Option, /// Whether to generate missing document ids. #[structopt(short, long)] autogen_docids: bool, @@ -231,6 +234,12 @@ impl Performer for DocumentAddition { IndexDocumentsMethod::ReplaceDocuments }; + if let Some(primary) = self.primary { + let mut builder = update::Settings::new(&mut txn, &index, &config); + builder.set_primary_key(primary); + builder.execute(|_| ()).unwrap(); + } + let indexing_config = IndexDocumentsConfig { update_method, autogenerate_docids: self.autogen_docids,