[英]Elastic Search Nest C# Syntax Error: using wildcard and multimatch within one query
[英]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 + "*")
)
)
)
)
因此,对于使用MultiMatch
时的函数参数query
,您将在最后执行.Query(query)
,但是当我尝试将其放入通配符时,会出现语法错误。 根据NEST ES文档,您似乎在最后没有使用.Query
。
当前返回一个空数组。
由于我不熟悉Nest和C#,因此对此有任何见识将不胜感激。
通过执行以下操作,我能够解决我的问题:
.Query(q => q
.Bool(b => b
.Should(m => m
.Wildcard(c => c
.Field("name").Value(query.ToLower() + "*")
)
)
)
)
query
是作为函数参数传入的,我希望星号在query
后接受所有信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.