Создание функции поиска в ASP.NET
У меня есть веб-сайт, этот контент (HTML) создается с использованием ASP.NET С# из базы данных SQL Server.
Теперь я хочу добавить функцию поиска на веб-сайт, чтобы пользователи могли искать контент. Это приведет к созданию страницы результатов с результатами.
Каков наилучший способ сделать это?
Ответы
Ответ 1
Два лучших решения:
- Пользовательский поиск Google (GCS)
- SQL Server (руководство)
GCS:
Здесь вы полностью положитесь на Google. Если они индексируют вашу веб-страницу за 60 дней, то удачи. Вы не найдете информацию, которая не хранится, публично, как веб-страница. Поэтому, любой контент в логине, забудьте его.
Вы также будете полагаться на поисковую оптимизацию. если вы не оптимизируете названия страниц, мета-описания и т.д., поиск будет не очень полезен.
Пользовательский SQL Server:
Если вы поместите полный текстовый индекс в свои поля данных, вы можете искать ключевые слова. Это достойное решение, но помните индексы (иначе это будет очень медленно).
Я бы поискал "Полный текстовый поиск SQL Server" для получения помощи по этому решению.
Преимущество здесь в том, что у вас есть полный контроль, и вы можете получить доступ ко всему.
EDIT:
Конечно, есть много других решений. Я также предложил бы изучить Lucene или некоторые реализации поверх Lucene, такие как Solr. Однако все функции поиска обычно очень сложны и требуют времени, отныне мои первые два предложения.
В компании, над которой я работаю, мы ранее использовали FAST и сегодня использовали Apptus.
ИЗМЕНИТЬ 2:
Сегодня я бы посоветовал только одно решение: ElasticSearch. Это отличное решение; легко работать; работает на всех платформах; основанный на хорошем REST api и JSON и работает очень хорошо.
Ответ 2
Сервер индексирования Microsoft: http://www.c-sharpcorner.com/UploadFile/sushil%20saini/UsingIndexServer11262005045132AM/UsingIndexServer.aspx
или...
Google Custom Search: http://www.google.com/coop/cse/
Ответ 3
Ваши страницы создаются из базы данных SQL. Я думаю, что можно с уверенностью предположить, что соответствующие данные также лежат в базе данных SQL, а не в asp-шаблонах или в коде С#. Чтобы выполнить поиск этих данных, вы можете записать несколько запросов в базу данных на основе функции contains("search term")
.
У вас может быть простой поиск, выполняющий все эти запросы, а также расширенный поиск, где вы можете предоставить флажки, на основе которых выполняются запросы для уточнения поиска.
Это будет иметь больше смысла, чем выполнение необработанного поиска по сгенерированному контенту, imo.
Ответ 4
Использование Lucene (проект Apache Lucene разрабатывает программное обеспечение поиска с открытым исходным кодом).
Ответ 5
Если вы используете SOL DB Try Включите свой собственный код для окна поиска в нем. Например, я создаю видео-портал, я ищу видео в своем поле поиска, используя следующий код,
<script type="text/javascript">
$(document).ready(function () {
SearchText();
});
function SearchText() {
$(".autosuggest").autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "Home.aspx/GetAutoCompleteData",
data: "{'username':'" + document.getElementById('txtSearch').value + "'}",
dataType: "json",
success: function (data) {
response(data.d);
},
error: function (result) {
alert("Error");
}
});
}
});
}
$(".autosuggest").autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "Home.aspx/GetAutoCompleteData",
data: "{'username':'" + document.getElementById('txtSearch').value + "'}",
dataType: "json",
success: function (data) {
response(data.d);
},
error: function (result) {
alert("Error");
}
});
}
});
</script>
/// <summary>
/// To AutoSearch. . .
/// </summary>
/// <param name="userName"></param>
/// <returns></returns>
public List<string> GetAutoComplete(string userName)
{
List<string> lstStr = new List<string>();
sqlCon = new SqlConnection(strCon);
sqlCmd=new SqlCommand("select DISTINCT OldFileName from UploadedVideo where OldFileName LIKE '%'[email protected]+'%'", sqlCon);
sqlCon.Open();
sqlCmd.Parameters.AddWithValue("@SearchText",userName);
SqlDataReader reader=null;
reader = sqlCmd.ExecuteReader();
while(reader.Read())
{
lstStr.Add(reader["OldFileName"].ToString());
}
return lstStr;
}
Я создал авто полную коробку. Главное здесь - мы можем использовать наш собственный код.,.
Ответ 6
Немного сложно узнать, в каком направлении вы предпочитаете работать с функцией поиска, и не зная, какие языки вы предпочитаете/и удобны в использовании.
Итак, как насчет чего-то простого? и использовать размещенный поиск?
Этот сайт здесь, бесплатно, будет индексировать до 1000, и вы получите с ним всевозможные отчеты. Похоже, вам просто нужно добавить на свой сайт простой HTML-код, чтобы все это работало.
вы также можете повторно индексировать по требованию, а также настроить расписание, чтобы сделать это за вас. Не нужно ждать Google.
Сайт Уровень сайта
Ответ 7
Использовать Google Поиск
* Если возможно, вы можете использовать Sharepoint для разработки веб-сайта, а поиск уже существует для каждого веб-сайта.
Ответ 8
Здесь вы можете найти лучший учебник.
http://www.codeproject.com/Articles/42454/Implement-Search-Functionality-into-your-ASP-NET-M
Ответ 9
Если ваш контент хранится в базе данных SQL, и вам нужно его искать внутри этого БД - тогда вам нужен какой-то построитель запросов.
Есть несколько из них на рынке. Я могу помнить Aspose Query и EasyQuery, но вы найдете больше, если google для "builder запроса asp.net" или что-то подобное.