如何在 "github.com" 中进行类似搜索?
How to make a similar search in "github.com"?
二手 - "octokit.net".
我对按语言搜索 "repositories"、"users" 和过滤结果很感兴趣。
场景:
1. 用户。输入搜索短语;
2. 网站。执行搜索;
3. 网站。显示结果:
一种。存储库;
b.用户;
过滤器:
- 语言;
点击"repositories"或"users"按钮后,结果显示在table。
点击语言后(例如,"C #"),筛选结果。
一般搜索结果:
存储库
- 存储库 - 108,951 个结果
- C#(存储库)- 4,315 个结果
用户
- 用户 - ~ 4K
- C#(用户)- ~ 72
如何重复这个脚本搜索引擎?
我写了初步代码,但我不明白如何让它更正确地工作。
方法未完成"searchUser (string searchQuery_str)"。
我打算通过类比“SearchReposit (string searchQuery_str, string lang_str)”
当前代码逻辑:
- 搜索所有存储库:
- 发送请求;
- 我们收到了答复;
- 在使用 C# 的存储库中搜索:
- 发送请求;
- 我们按语言过滤请求 "C #";
- 我们收到了答复;
那些。现在正在为每个案例执行一个单独的请求(var 请求),但在我看来,您需要执行一个请求,然后对其执行以下操作:
- 过滤器;
- 排序;
- 清除过滤;
- 清除排序。
问题是:如何使执行一个请求成为可能,然后对其执行以下操作:
- 过滤器;
- 排序;
- 清除过滤;
- 清除排序
- 计算搜索结果的数量?
我对逻辑的理解是否正确,是否可以这样做?
如果我理解正确,搜索 "users" 的工作将类似于搜索 "repositories"。
Link 搜索文档 - Link
enter image description here
enter image description here
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);
}
更改了变量 request
:
- 是 var
- 变成了 SearchRepositoriesRequest
;
- 是 local - became
global`;
改变了方法"SearchReposit (string searchQuery_str, string lang_str)"
- 添加了参数 "bool null_flg" - 变成了 "SearchReposit (string searchQuery_str, string lang_str, bool null_flg)";
- 添加了检查 "bool null_flg";
if (null_flg == false)
{
request = new SearchRepositoriesRequest (searchQuery_str);
}
代码如下所示
SearchRepositoriesRequest request;
public async Task<string> SearchReposit(string searchQuery_str, string lang_str, bool null_flg)
{
//SearchRepositoriesRequest request = new SearchRepositoriesRequest();
// Поиск по "Реозитариям"
// if (request == null) // ошб
if (null_flg == false)
{
request = new SearchRepositoriesRequest(searchQuery_str); // mvc client side framework - Структура клиентской стороны mvc
// return request;
}
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;
}
private async void button1_Click(object sender, EventArgs e)
{
// Получаем поисковую фразу
string searchQuery_str = Search_txB.Text;
string lang_str;
bool null_flg;
// Поиск по репозитариям. "Результат"
lang_str = "";
null_flg = false;
var countRepo = await SearchReposit(searchQuery_str, lang_str, null_flg);
null_flg = true;
label5.Text = countRepo;
// Поиск по репозитариям. "Результат"
lang_str = "C#";
var countRepoLang = await SearchReposit(searchQuery_str, lang_str, null_flg);
label7.Text = countRepoLang;
}
这是一个正常的决定还是可以做出更有效的决定?
二手 - "octokit.net".
我对按语言搜索 "repositories"、"users" 和过滤结果很感兴趣。
场景:
1. 用户。输入搜索短语;
2. 网站。执行搜索;
3. 网站。显示结果:
一种。存储库;
b.用户;
过滤器:
- 语言;
点击"repositories"或"users"按钮后,结果显示在table。
点击语言后(例如,"C #"),筛选结果。
一般搜索结果:
存储库
- 存储库 - 108,951 个结果
- C#(存储库)- 4,315 个结果
用户
- 用户 - ~ 4K
- C#(用户)- ~ 72
如何重复这个脚本搜索引擎?
我写了初步代码,但我不明白如何让它更正确地工作。
方法未完成"searchUser (string searchQuery_str)"。
我打算通过类比“SearchReposit (string searchQuery_str, string lang_str)”
当前代码逻辑:
- 搜索所有存储库:
- 发送请求;
- 我们收到了答复;
- 在使用 C# 的存储库中搜索:
- 发送请求;
- 我们按语言过滤请求 "C #";
- 我们收到了答复;
那些。现在正在为每个案例执行一个单独的请求(var 请求),但在我看来,您需要执行一个请求,然后对其执行以下操作:
- 过滤器;
- 排序;
- 清除过滤;
- 清除排序。
问题是:如何使执行一个请求成为可能,然后对其执行以下操作:
- 过滤器;
- 排序;
- 清除过滤;
- 清除排序
- 计算搜索结果的数量?
我对逻辑的理解是否正确,是否可以这样做?
如果我理解正确,搜索 "users" 的工作将类似于搜索 "repositories"。
Link 搜索文档 - Link
enter image description here
enter image description here
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);
}
更改了变量 request
:
- 是 var
- 变成了 SearchRepositoriesRequest
;
- 是 local - became
global`;
改变了方法"SearchReposit (string searchQuery_str, string lang_str)"
- 添加了参数 "bool null_flg" - 变成了 "SearchReposit (string searchQuery_str, string lang_str, bool null_flg)";
- 添加了检查 "bool null_flg";
if (null_flg == false)
{
request = new SearchRepositoriesRequest (searchQuery_str);
}
代码如下所示
SearchRepositoriesRequest request;
public async Task<string> SearchReposit(string searchQuery_str, string lang_str, bool null_flg)
{
//SearchRepositoriesRequest request = new SearchRepositoriesRequest();
// Поиск по "Реозитариям"
// if (request == null) // ошб
if (null_flg == false)
{
request = new SearchRepositoriesRequest(searchQuery_str); // mvc client side framework - Структура клиентской стороны mvc
// return request;
}
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;
}
private async void button1_Click(object sender, EventArgs e)
{
// Получаем поисковую фразу
string searchQuery_str = Search_txB.Text;
string lang_str;
bool null_flg;
// Поиск по репозитариям. "Результат"
lang_str = "";
null_flg = false;
var countRepo = await SearchReposit(searchQuery_str, lang_str, null_flg);
null_flg = true;
label5.Text = countRepo;
// Поиск по репозитариям. "Результат"
lang_str = "C#";
var countRepoLang = await SearchReposit(searchQuery_str, lang_str, null_flg);
label7.Text = countRepoLang;
}
这是一个正常的决定还是可以做出更有效的决定?