filterInputs.profileId =“d12”;
var results = client
.Search<StockBaseEntity>(s => s
.Type("item")
.Take(1000)
.Filter(f => f
.Bool(bb => bb
.Must(ms =>
{
return
!ms.Term("profileId", filterInputs.profileId)
})))
.Sort(so => so.OnField("sortScore").Ascending())
);
“profileId”可以是小型或大写型或混合型。无论如何,我都希望返回结果。
我该怎么做?
目前,其治疗d123与D123不同。 OR da与DA不同,与dA不同。 (所有这些都应该相同)。
我该怎么做?
答案 0 :(得分:0)
如果您使用standard
分析器进行字段profileId
(我猜您不会提出这个问题),那么这些值会以小写形式存储在Elasticsearch中指数。您需要将filterInputs.profileId
的值小写并将其传递到Term()
过滤器。
var results = client.Search<StockBaseEntity>(s => s
.Type("item")
.Take(1000)
.Filter(f => f
.Bool(bb => bb
.Must(ms =>
{
return !ms.Term("profileId", filterInputs.profileId.ToLowerInvariant());
})))
.Sort(so => so.OnField("sortScore").Ascending()));