maxDistinctFraction

Distinct values a path may have per document and still be worth an inverted index.

Unbounded by default, and that default is not a placeholder: a path with a distinct value per document is a perfectly good equality index — it is the best one — so excluding it by default would be confusing a bitmap's storage shape with an index's usefulness. The estimator cannot tell an identifier from a category, because they are the same shape.

What separates them is how many rows the caller expects back, which the scorer never knows and the caller always does. 1.0 / 50 says a term should name a category: at most one distinct value per fifty documents, so a lookup returns a group rather than a row. Without it the top recommendation over a corpus of prose is the prose — every line of it, perfectly type-stable, enormously distinct, and not a question anybody has.

Measured against InferredSchema.documentCount and against the estimate at the path, so a repeated path may legitimately exceed 1.0: $.tags[*] can hold more distinct values than there are documents. That is the same asymmetry InferredField.presence has, kept for the same reason — documents are the unit the answer is counted in.

Like minDistinct it gates the inverted index alone and never IndexKind.SHREDDED_COLUMN.