【发布时间】:2016-12-05 15:09:09
【问题描述】:
所以,这是我的查询:
_elasticClient.Search<SearchItem>(x =>
x.Sort(sort).Size(itemsPerPage)
.Query(q =>
q.MultiMatch(m => m
.Fields(fs => fs
.Field(p => p.Field1)
.Field(p => p.Field2)
.Field(p => p.Field3)
.Field(p => p.Field4)
.Field(p => p.Field5)
.Field(p => p.Field6)
)
.Operator(Operator.And)
.Query(pattern)
)));
我必须应用不同的过滤器。范围过滤器(针对价格),过滤结果集,其中 field1 = "Audi" 和 field2 = "Sale Car"。我试图做这样的事情:
.Query(q =>
q.MultiMatch(m => m
.Fields(fs => fs
Field(p => p.Field1)
.Field(p => p.Field2)
.Field(p => p.Field3)
.Field(p => p.Field4)
.Field(p => p.Field5)
.Field(p => p.Field6)
)
.Operator(Operator.And)
.Query(pattern)))
.Query(q=>q.Range(ra=>ra.Field(ff=>ff.SalePrice).GreaterThan(1000))));
但这不起作用。我已经从索引中获得了价格大于 1000 的所有结果,但只需要搜索结果。谁能帮帮我?
【问题讨论】:
-
使用
bool查询来组合multi_match和range查询 - elastic.co/guide/en/elasticsearch/client/net-api/2.x/…
标签: c# elasticsearch nest