为了账号安全,请及时绑定邮箱和手机立即绑定

C#弹性搜索精确文本匹配与嵌套

C#弹性搜索精确文本匹配与嵌套

C#
温温酱 2022-06-19 16:38:46
我正在使用最新的 c# 弹性搜索 NEST 库。我正在尝试使用精确的文本匹配进行搜索,但目前它正在搜索子集匹配。我想做完全匹配。以下是我的代码片段:public User GetUserByUsername(string username)    {        var client = new ElasticConnectionManager(this.configuration).GetClient(Constant.IndexUsers);        var searchResponse = client.Search<User>(s => s                            .Query(q => q            .Bool(bq => bq                            .Filter(f => f.Term(t => t.Username, username))            .Must(mt=>mt.Term(t2=> t2.Username, username)))));        //.Must(bs => bs.Term(t => t.Username, username))        if (searchResponse.Documents.Count > 0)            return searchResponse.Documents.First();        else            return null;    }}
查看完整描述

1 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

尝试使用 match_phrase 查询进行精确的文本匹配。您的查询应类似于以下内容:

    var searchResponse = client.Search<User>(s => s
            .Query(q => q
            .MatchPhrase(m => m
            .Field(f => f.Username)
            .Query(username))));


查看完整回答
反对 回复 2022-06-19
  • 1 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号