Я использую MSSQL и C # для написания поисковой системы. Я получил несколько стоп-слов в базе данных. На моей странице default.aspx я получил текстовое поле и кнопку поиска. Пользователи могут ввести целое предложение в текстовое поле.
Я написал код для поиска по одному ключевому слову, но не по целому предложению. Это функция в default.aspx.cs
private void ImageSearch()
{
if (txtSearch.Text.Trim().Equals(""))
{
//when types nothing
txtSearch.Focus();
Warning.Text = "Please enter the keyword to search";
//display message
return;
}
else
{
int check = Process.CheckStopWord(txtSearch.Text.Trim());
//check if the keyword is stop word
if (check == 0)
{
txtSearch.Focus();
Warning.Text = "No stop word found";
}
else
{
txtSearch.Focus();
Warning.Text = "Found Stop word";
}
}
}
и для функции контрольного слова
public static int CheckStopWord(string keyword)
{
string check = "0";
string query = "SELECT COUNT (stopword) FROM stopwordtb WHERE [stopword] like '" + keyword + "'";
//count how many stop word matches the keyword entered, return a string of a number
accessDB dbaccess = new accessDB();
DataSet ds = dbaccess.queryData(query);
DataTable dt = ds.Tables[0];
if (dt.Rows[0][0].ToString() == check)
{
return 0;
//keyword != stop word in stopwordtb
// begin search in image database - not implemented yet
}
else
{
return 1;
//keyword = stop word in stopwordtb
}
}
Моя проблема в том, что если пользователь введет целое предложение?
Например, если он набирает «Дерево» в текстовом поле, но «The» - это стоп-слово, поэтому я просто проигнорирую «the» и просто поищу в базе данных изображений «tree».
Как я могу поместить предложение в переменные и искать каждую из них в отдельности? или есть более быстрый способ?
Надеюсь, кто-нибудь может мне помочь. Спасибо