У меня возникли проблемы с созданием запроса, который выполняет поиск по разным полям. Я получил ответы, которые хотел получить, создав несколько запросов - но ради производительности - я хочу сделать это только одним запросом, если это возможно.
Я пытался настроить запрос в нескольких предложениях .Should , но кажется, что он ищет документы, которые соответствуют каждому полю, которое, я думаю, предназначено. Это выглядит так:
.From(0)
.Sort(sort => sort
.Field("priority", SortOrder.Descending))
.Sort(sort => sort
.Ascending(a => a.ItemNumber.Suffix("keyword")))
.Sort(sort => sort
.Descending(SortSpecialField.Score))
.TrackScores(true)
.Size(25)
.Query(qe => qe
.Bool(b => b
.Should(m => m
.Match(ma => ma
.Boost(1.1)
.Field("itemnumber")
.Query(ItemNumber)
))
.Should(m => m
.Match(ma => ma
.Boost(1.1)
.Field("itemnumber2")
.Query(ItemNumber)))
.Should(m => m
.Match(ma => ma
.Boost(1.1)
.Field("ean")
.Query(ItemNumber)))
.Should(m => m
.Match(ma => ma
.Boost(1.1)
.Field("itemalias")
.Query(ItemNumber)))
)));
Я хочу, чтобы это было сделано; Выполните поиск по номеру товара и посмотрите, соответствует ли документ, если нет, то по номеру товара2 и так далее. Есть ли эффективный способ сделать это всего за один запрос?