Skip to content

Explicit minimum_should_match number support for Terms Set Query #94095

Closed

Description

Description

The Terms Set Query lets you match documents that have some minimum number of matches to a given array of input search terms. The minimum number of matches however can only be specified by referencing another field on the document or by using a script.

I have a use case where I need to be able to specify the minimum number of terms to match at query time, agnostic of documents so the minimum_should_match_field is not useful. Further, since I know I need to match a minimum of exactly, say, 3 terms, it seems like overkill to have to enable and using scripting (as in the use of minimum_should_match_script) to just return a static number.

Today as an alternative, I'm instead using a Bool Query with a minimum_should_match accepting my explicit number and all of my input search terms mapping to an array of individual { term: { field: value } } entries in the should array of the bool. However, this is very json-inefficient, especially when I am making queries with many (possibly thousands) of terms in my query.

I was so happy to find the Terms Set query as a leaner, more specialized alternative to my massive should array but was then very surprised that there was no query-time input for the minimum match count (outside scripting).

TL;DR: Terms Set query should support a third possible top-level parameter for specifying the minimum number of terms to match which simply accepts a number, like minimum_should_match

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions