1
以下过滤查询:如何有条件地在ElasticSearch中添加多个条件?
var searchResults = _client.Search<MyIndexable>(s => s
.Query(q => q
.Bool(b => b
.Must(
subQuery => subQuery.QueryString(qs => qs.OnFields(f => f.Title, f => f.Description).Query(searchTerm + "*"")),
subQuery => subQuery.Term(f => f.field1, "some string"),
subQuery => subQuery.Term(f => f.field2 , "some Guid")))));
我想每个过滤器添加下面conditinally下的必然选择。像
if (request.field2)
ubQuery.Term(f => f.field1, "some string"
任何人都可以帮助我做到这一点?
bittusarkar,我如何获得subQuery实例添加过滤器在BoolFilterDescriptor(必须)上面的情况下?像我需要添加ExistFilter而不是QueryString,然后有条件地过滤条件? – Sasi
“过滤器”:{ “布尔”:{ “必须”:[ { “存在”:{ “场”: “CID” } }, { “存在”:{ “字段“: “PRF” }} , { “术语”:{ “IsActive”:真 }} , – Sasi
你不需要在任何地方定义子查询。它是'Func'定义的一部分。我粘贴的代码在语法上是正确的。你可以用你想实现的任何其他查询替换QueryString。 – bittusarkar