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。
或者da与DA不同,与dA不同。
(所有这些都应该相同)。
我怎样才能做到这一点?
最佳答案
如果您将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()));
关于c# - Elasticsearch 查询使字符串匹配不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34723152/