【发布时间】:2015-04-30 14:46:15
【问题描述】:
我们的搜索逻辑有问题。当用户想要搜索区域“团队区域 123”时,由于空间原因,它将搜索姓氏。只是想看看我们怎么能告诉搜索它不是姓氏搜索而你做错了?
public IEnumerable<User> Query()
{
if (!String.IsNullOrEmpty(query))
{
int ext = 0;
if (query.Contains("."))
{
return repository.SelectSearchByEmail(query.Trim());
}
else if (query.Contains(","))
{
var names = query.Split(',');
var firstName = names[0];
var lastName = names[1];
return repository.SelectSearchByFirstAndLastName(firstName, lastName);
}
else if (query.Contains(" "))
{
var names = query.Split(' ');
var firstName = names[0];
var lastName = names[1];
return repository.SelectSearchByFirstAndLastName(firstName, lastName);
}
else if (query.Contains("_"))
{
var names = query.Split('_');
var firstName = names[0];
var lastName = names[1];
return repository.SelectSearchByFirstAndLastName(firstName, lastName);
}
else if (int.TryParse(query, out ext))
{
return repository.SelectSearchByExt(ext);
}
else
{
return repository.SelectAllUserByQuery(query);
}
}
return new List<User>();
}
【问题讨论】:
-
你的问题让我很困惑,你能试着用其他方式解释你的问题吗?
-
您的问题不清楚,您在寻求什么帮助?
-
实际上没有任何方法可以区分包含某人的名字和姓氏的搜索条目与其他条目。计算机不擅长那个;含义上的差异只有人类才能辨别。
-
用户键入“team Area 123”,因为它认为我正在搜索 First name ,last name 因为查询搜索有空格“”
-
您在搜索什么?您应该提供一个完整的工作示例,包括当前结果和预期结果。