[PATCH] lib: optimize counting documents

Jani Nikula jani at nikula.org
Wed Jan 18 09:19:34 PST 2017


On Wed, 11 Jan 2017, David Bremner <david at tethera.net> wrote:
> From #xapian
>
> olly> bremner: btw, i noticed notmuch count see ms to request all the documents and then ignores them
>
> bremner> hmm. There's something funny about the way that notmuch uses matches in general iirc
>
> olly> it should be able to do: mset = enquire.get_mset (0, 0, notmuch->xapian_db->get_doccount ());
> ...
> olly> get_matches_estimated() will be exact because check_at_least is the size of the database

A careful reading of get_mset() API reference seems to agree with this.

BR,
Jani.

> ---
>  lib/query.cc | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/lib/query.cc b/lib/query.cc
> index 53efd4e1..4ccd8104 100644
> --- a/lib/query.cc
> +++ b/lib/query.cc
> @@ -606,8 +606,9 @@ _notmuch_query_count_documents (notmuch_query_t *query, const char *type, unsign
>  	/*
>  	 * Set the checkatleast parameter to the number of documents
>  	 * in the database to make get_matches_estimated() exact.
> +	 * Set the max parameter to 0 to avoid fetching documents we will discard.
>  	 */
> -	mset = enquire.get_mset (0, notmuch->xapian_db->get_doccount (),
> +	mset = enquire.get_mset (0, 0,
>  				 notmuch->xapian_db->get_doccount ());
>  
>  	count = mset.get_matches_estimated();
> -- 
> 2.11.0
>
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> https://notmuchmail.org/mailman/listinfo/notmuch


More information about the notmuch mailing list