我尝试使用通配符在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#的新手,我们将不胜感激。
答案 0 :(得分:2)
我能够通过以下方式解决我的问题:
.Query(q => q
.Bool(b => b
.Should(m => m
.Wildcard(c => c
.Field("name").Value(query.ToLower() + "*")
)
)
)
)
query
作为函数参数传入,我希望星号在query
之后取出所有内容。