Запрос на совпадение имеет тип boolean. Это означает, что предоставленный текст анализируется, и процесс анализа создает логический запрос из предоставленного текста. Минимальное количество необязательных предложений must для сопоставления может быть установлено с помощью параметра Minimum_should_match.
Чтобы узнать больше о запросе на совпадение , вы можете обратиться к Документация ES
Ниже приведено отображение поля name
{
"tests": {
"mappings": {
"properties": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
Теперь при поиске "red brown yellow"
из запроса ниже
POST tests/_search
{
"query": {
"match": {
"name": {
"query": "red brown yellow",
"minimum_should_match": "75%"
}
}
}
}
Вы получите требуемый результат:
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 0.87546873,
"hits": [
{
"_index": "tests",
"_type": "_doc",
"_id": "1",
"_score": 0.87546873,
"_source": {
"name": "red yellow"
}
}
]
}
}
Вывод не будет включать green yellow
. Это связано с тем, что второй документ соответствует только 1/3 условий запроса, что ниже 75%