C# elastic search 精确文本匹配嵌套
C# elastic search exact text match with nest
我正在使用最新的 c# elastic search 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;
}
}
尝试使用 match_phrase 查询进行精确文本匹配。您的查询应类似于以下内容:
var searchResponse = client.Search<User>(s => s
.Query(q => q
.MatchPhrase(m => m
.Field(f => f.Username)
.Query(username))));
我正在使用最新的 c# elastic search 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;
}
}
尝试使用 match_phrase 查询进行精确文本匹配。您的查询应类似于以下内容:
var searchResponse = client.Search<User>(s => s
.Query(q => q
.MatchPhrase(m => m
.Field(f => f.Username)
.Query(username))));