def rebuild_index_for_model(model_, engine_slug_, verbosity_): """rebuilds index for a model""" search_engine_ = get_engine(engine_slug_) local_refreshed_model_count = [0 ] # HACK: Allows assignment to outer scope. def iter_search_entries(): for obj in model_._default_manager.all().iterator(): for search_entry in search_engine_._update_obj_index_iter(obj): yield search_entry local_refreshed_model_count[0] += 1 if verbosity_ >= 3: print("Refreshed search entry for {model} {obj} " "in {engine_slug!r} search engine.".format( model=force_text(model_._meta.verbose_name), obj=force_text(obj), engine_slug=force_text(engine_slug_), )) if verbosity_ == 2: print( "Refreshed {local_refreshed_model_count} {model} search entry(s) " "in {engine_slug!r} search engine.".format( model=force_text(model_._meta.verbose_name), local_refreshed_model_count=local_refreshed_model_count[0], engine_slug=force_text(engine_slug_), )) _bulk_save_search_entries(iter_search_entries()) return local_refreshed_model_count[0]
def rebuild_index_for_model(model_, engine_slug_, verbosity_): '''rebuilds index for a model''' search_engine_ = get_engine(engine_slug_) local_refreshed_model_count = [0] # HACK: Allows assignment to outer scope. def iter_search_entries(): for obj in model_._default_manager.all().iterator(): for search_entry in search_engine_._update_obj_index_iter(obj): yield search_entry local_refreshed_model_count[0] += 1 if verbosity_ >= 3: print("Refreshed search entry for {model} {obj} in {engine_slug!r} search engine.".format( model = force_text(model_._meta.verbose_name), obj = force_text(obj), engine_slug = force_text(engine_slug_), )) if verbosity_ == 2: print("Refreshed {local_refreshed_model_count} {model} search entry(s) in {engine_slug!r} search engine.".format( model = force_text(model_._meta.verbose_name), local_refreshed_model_count = local_refreshed_model_count[0], engine_slug = force_text(engine_slug_), )) _bulk_save_search_entries(iter_search_entries()) return local_refreshed_model_count[0]
def rebuild_index_for_model(model_, engine_slug_, verbosity_, slim_=False, batch_size_=100, non_atomic_=False): """rebuilds index for a model""" search_engine_ = get_engine(engine_slug_) local_refreshed_model_count = [0 ] # HACK: Allows assignment to outer scope. def iter_search_entries(): # Only index specified objects if slim_ is True if slim_ and search_engine_._registered_models[ model_].get_live_queryset(): obj_list = search_engine_._registered_models[ model_].get_live_queryset() else: obj_list = model_._default_manager.all() for obj in obj_list.iterator(): for search_entry in search_engine_._update_obj_index_iter(obj): yield search_entry local_refreshed_model_count[0] += 1 if verbosity_ >= 3: print("Refreshed search entry for {model} {obj} " "in {engine_slug!r} search engine.".format( model=force_text(model_._meta.verbose_name), obj=force_text(obj), engine_slug=force_text(engine_slug_), )) if verbosity_ == 2: print( "Refreshed {local_refreshed_model_count} {model} search entry(s) " "in {engine_slug!r} search engine.".format( model=force_text(model_._meta.verbose_name), local_refreshed_model_count=local_refreshed_model_count[0], engine_slug=force_text(engine_slug_), )) if non_atomic_: _bulk_save_search_entries(iter_search_entries(), batch_size=batch_size_) else: with transaction.atomic(): _bulk_save_search_entries(iter_search_entries(), batch_size=batch_size_) return local_refreshed_model_count[0]