繁体   English   中英

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 + "*")                            
                     )
                 )
             )
         )

因此,对于使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM