Соотношение эластичного поиска

Мой поисковый запрос работает нормально (я надеюсь), но иногда у меня слишком много результатов с оценкой 1,5, 0,7, 0,6... или 0,1, 0,001, 0,001... Можно ли заблокировать результаты с низкой релевантностью? Фиксированное значение не подходит, потому что оно зависит от максимального _score (оценка наиболее значимого результата). Это должно работать как "заблокировать все результаты, у которых _score вдвое меньше максимального _score (оценка наиболее релевантного результата)"

{
    "query": {
        "bool": {
            "disable_coord": true,
            "must": [
                { "match": {  
                    "ObjectTypeSysName": {
                        "query":    "participant"
                    }
                }
            },
               { "match": {
                    "_all": {
                        "query": "text-to-find",
                         "operator": "and",
                         "fuzziness": "AUTO",
                         "minimum_should_match": 1
                    }
                }}
            ],
           "should": [
            { "multi_match" : {
                "query":      "text-to-find",
                "type":       "best_fields",
                "fields":     [
                "*NAME",
                "ObjectData.EXTERNALID",
                "ObjectData.contactList.VALUE",
                "*SERIES",
                "*NUMBER"
                ],
                "operator":   "or",
                "boost": 2
            }}
            ]
        }
    }
}

0 ответов

Другие вопросы по тегам