Параметр minimum_should_match
Возможные значения параметра minimum_should_match:
| Тип | Пример | Описание |
|---|---|---|
Целое число |
| Указывает фиксированное значение независимо от количества необязательных условий. |
Отрицательное целое число |
| Указывает, что общее количество необязательных условий, минус это число, должно быть обязательным. |
Процент |
| Указывает, что данный процент от общего количества необязательных условий необходим. Вычисленное из процента число округляется вниз и используется как минимум. |
Отрицательный процент |
| Указывает, что данный процент от общего количества необязательных условий может отсутствовать. Вычисленное из процента число округляется вниз, а затем вычитается из общего значения для определения минимума. |
Комбинация |
| Положительное целое число, за которым следует символ «меньше», за которым следует любой из ранее упомянутых спецификаторов, является условной спецификацией. Она указывает, что если количество необязательных условий равно (или меньше) целому числу, они все являются обязательными, но если оно больше целого числа, применяется спецификация. В данном примере: если имеется от 1 до 3 условий, они все обязательны, но для 4 или более условий необходимо только 90%. |
Несколько комбинаций |
| Несколько условных спецификаций могут быть разделены пробелами, каждая из которых является допустимой только для чисел, больших предыдущего. В данном примере: если имеется 1 или 2 условия, оба обязательны; если имеется от 3 до 9 условий, все, кроме 25%, являются обязательными; а если имеется более 9 условий, все, кроме трёх, являются обязательными. |
ПРИМЕЧАНИЕ:
При работе с процентами отрицательные значения могут использоваться для получения различного поведения в крайних случаях. 75% и -25% означают одно и то же при работе с 4 условиями, но при работе с 5 условиями 75% означают, что требуется 3, а -25% — что требуется 4.
Если вычисления на основе спецификации определяют, что необязательные условия не нужны, в момент поиска всё равно применяются обычные правила BooleanQueries (BooleanQuery, не содержащий обязательных условий, всё равно должен соответствовать хотя бы одному необязательному условию).
Независимо от того, какое число получается в результате вычислений, значение, большее количества необязательных условий или меньшее 1, никогда не будет использоваться. (то есть, независимо от того, насколько низким или высоким является результат вычисления, минимальное количество необходимых совпадений никогда не будет ниже 1 или выше количества условий).
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/query-dsl-minimum-should-match.html