Можете ли вы предложить, как мне построить запрос на основе нескольких фильтров. В настоящее время я хочу реализовать функцию поиска, используя следующие фильтры:
- Наименование товара
- Страны (массив)
- Города (массив)
Требования заключаются в том, что, если округа или города не имеют выбранного значения, запрос предполагает, что вы ищете все страны и города. Если есть выбранные округа и города, то результат должен основываться на выбранных округах и городах.
У меня есть запрос ниже, чтобы начать с.
static void Main(string[] args)
{
var uri = new Uri("http://localhost:9200");
var connectionPool = new SingleNodeConnectionPool(uri);
var settings = new ConnectionSettings(connectionPool);
var client = new ElasticClient(settings);
if (counties.Count > 0)
{
foreach(string country in counties)
{
// Add a query to be added in client.Search
}
}
if (cities.Count > 0)
{
foreach(string city in cities)
{
// Add a query to be added in client.Search
}
}
client.Search<Product>(s => s
.Query(q => q
.Bool(b => b
.Must(mu => mu
.Match(m => m
.Field(f => f.ProductName)
.Query("some text")
),
.
)
)
)
);
}