使用 - “octokit.net”。
我对按语言搜索“存储库”、“用户”和过滤结果感兴趣。
场景:
1.用户。输入搜索词组;
2. 网站。执行搜索;
3. 网站。显示结果:
a. 存储库;
湾。用户;
过滤器:
- 语言;
单击“存储库”或“用户”按钮后,结果将显示在表格中。
点击语言(例如“C#”)后,过滤结果。
一般搜索结果:
Repositories
- Repositories - 108,951 个结果
- C# (repository) - 4,315 个结果
Users
- Users - ~ 4K
- C# (users) - ~ 72
如何重复这个脚本搜索引擎?
我编写了初步代码,但我不明白如何使它更正确地工作。
方法未完成“searchUser (string searchQuery_str)”。
我打算通过类比“SearchReposit (string searchQuery_str, string lang_str)”来做到这一点
当前代码逻辑:
- 搜索所有存储库:
- 发送请求;
- 我们收到答案;
- 在使用 C# 的存储库中搜索:
- 发送请求;
- 我们按语言“C#”过滤请求;
- 我们收到答案;
那些。现在正在为每个案例(var request)执行一个单独的请求,但在我看来,您需要执行一个请求,然后对其执行以下操作:
- filter;
- 种类;
- 清晰的过滤;
- 清晰的排序。
问题是:如何使执行一个请求成为可能,然后对其执行以下操作:
- 过滤器;
- 种类;
- 清晰的过滤;
- 清除排序
- 计算搜索结果的数量?
我是否正确理解了逻辑,是否可以这样做?
如果我理解正确,搜索“用户”的工作将类似于搜索“存储库”。
链接到搜索文档 -链接
private async void button1_Click(object sender, EventArgs e)
{
// Получаем поисковую фразу
string searchQuery_str = Search_txB.Text;
string lang_str;
// Поиск по репозитариям. "Результат"
lang_str = "";
var countRepo = await SearchReposit(searchQuery_str, lang_str);
label5.Text = countRepo;
// Поиск по репозитариям. "Результат"
lang_str = "C#";
var countRepoLang = await SearchReposit(searchQuery_str, lang_str);
label7.Text = countRepoLang;
}
public async Task<string> SearchReposit(string searchQuery_str, string lang_str)
{
// Поиск по "Реозитариям"
var request = new SearchRepositoriesRequest(searchQuery_str); // mvc client side framework - Структура клиентской стороны mvc
switch (lang_str)
{
case "C#":
request.Language = Language.CSharp;
break;
}
var resultRepo = await client.Search.SearchRepo(request);
// Количество репозитариев
decimal countRepo_dec = Convert.ToDecimal(resultRepo.TotalCount);
// Количество репозитариев. Форматирование
string countRepo_str = formatValue(countRepo_dec);
return countRepo_str;
}
// Поиск по "Пользователям" ()
public async void searchUser(string searchQuery_str)
{
var request = new SearchUsersRequest(searchQuery_str); // _____
var resultUser = await client.Search.SearchUsers(request);
label6.Text = resultUser.TotalCount.ToString();
// var resultUsers = await client.Search.SearchUsers(request);
}