У меня есть запрос на совпадение с пятью различными полями. Я хочу ограничить степень влияния этого запроса с множественным соответствием на общий запрос, чтобы, если по какой-либо причине одно из полей было только что заселено поисковыми запросами, оно не получило значительную оценку , То, что я хочу, это разлагающее воздействие. Я просмотрел документацию и изо всех сил пытаюсь найти способ сделать это. Я обнаружил, что документы сценариев распада (https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/function-score-query-usage.html), но все они, похоже, указывают c на одно поле, которое мне не очень помогает, так как я хочу применить его к множественному совпадению query.
Вот запрос, для которого я хочу ограничить влияние:
new MultiMatchQuery
{
Type = TextQueryType.MostFields,
Fields = Field<SearchableTour>(f => f.Name, 0.5)
.And(Field<SearchableTour>(f => f.StartCity, 0.1))
.And(Field<SearchableTour>(f => f.FinishCity, 0.1))
.And(Field<SearchableTour>(f => f.Description, 0.05))
.And(Field<SearchableTour>(f => f.ItineraryText, 0.01)),
Query = searchText,
Operator = Operator.And
}
Базовые данные не контролируются мной, и кто-то теоретически может просто заполнить одно из этих полей обычным поиском. условия искусственно повысить свой результат до вершины. Я хочу предотвратить это, но все же позволю этим полям оказывать ограниченное влияние. Кажется, что не существует понятия «максимальный балл», который позволил бы мне ограничить комбинированный балл для этих полей.