c# - C#弹性搜索精确文本匹配与嵌套
问题描述
我正在使用最新的 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;
}
}
解决方案
尝试使用 match_phrase 查询进行精确的文本匹配。您的查询应类似于以下内容:
var searchResponse = client.Search<User>(s => s
.Query(q => q
.MatchPhrase(m => m
.Field(f => f.Username)
.Query(username))));
推荐阅读
- ruby-on-rails - 将 ActiveRecord 查询记录的字段从 1 更新为 n 而不循环
- python - 无法在我的串行控制台上读取 RFID 标签号
- azure - 如何使用 Mongodb shell 打开到 Cosmos DB 模拟器的经过身份验证的连接?
- apache-spark - Spark - 找不到异常 org.apache.spark.Logging
- javascript - React - 从父级到子级访问函数参数
- reactjs - 组件渲染三次,第一次没有设置状态,抛出错误:无法读取未定义的属性
- php - TYPO3 自定义页面属性
- vb.net - VB.Net 访问查询停止将小数四舍五入为整数
- python - Scrapy + Python + Xpath :Xpath 返回一个空列表
- tensorflow - Keras:关于提前停止网络状态的问题