C# Nest Elastic Search 通配符查询 - 没有返回结果
C# Nest Elastic Search Wildcard Query - No Results Returned
我正在尝试使用通配符在 C# 中设置查询。我可以使用 MultiMatch
获得返回的正确数据,但没有成功使用通配符。这是我目前所拥有的:
public async Task<IEnumerable<SearchResultModel>> Search(string query)
var queryResults = await elasticApp.SearchAsync<dynamic>(s => s
.From(0)
.Take(10)
.Index(activeIndices)
.Type(dataTypes)
.Query(q => q
.Bool(b => b
.Should(m => m
.Wildcard(w => w
.Field("name")
.Value(w + "*")
)
)
)
)
至于函数参数 query
当使用 MultiMatch
时,你会在最后做 .Query(query)
,但是当我尝试将其放入使用 Wildcard 时出现语法错误.根据 NEST ES 文档,您似乎最后没有使用 .Query
。
目前返回一个空数组。
任何对此的见解都将不胜感激,因为我是使用 Nest 和 C# 的新手。
我通过执行以下操作解决了我的问题:
.Query(q => q
.Bool(b => b
.Should(m => m
.Wildcard(c => c
.Field("name").Value(query.ToLower() + "*")
)
)
)
)
query
作为函数参数传入,我希望星号包含 query
之后的所有内容。
我正在尝试使用通配符在 C# 中设置查询。我可以使用 MultiMatch
获得返回的正确数据,但没有成功使用通配符。这是我目前所拥有的:
public async Task<IEnumerable<SearchResultModel>> Search(string query)
var queryResults = await elasticApp.SearchAsync<dynamic>(s => s
.From(0)
.Take(10)
.Index(activeIndices)
.Type(dataTypes)
.Query(q => q
.Bool(b => b
.Should(m => m
.Wildcard(w => w
.Field("name")
.Value(w + "*")
)
)
)
)
至于函数参数 query
当使用 MultiMatch
时,你会在最后做 .Query(query)
,但是当我尝试将其放入使用 Wildcard 时出现语法错误.根据 NEST ES 文档,您似乎最后没有使用 .Query
。
目前返回一个空数组。
任何对此的见解都将不胜感激,因为我是使用 Nest 和 C# 的新手。
我通过执行以下操作解决了我的问题:
.Query(q => q
.Bool(b => b
.Should(m => m
.Wildcard(c => c
.Field("name").Value(query.ToLower() + "*")
)
)
)
)
query
作为函数参数传入,我希望星号包含 query
之后的所有内容。