Этот вопрос далеко слишком широкий.Тем не менее, я могу дать вам несколько советов.
Во-первых, вам нужно определить, что вы действительно хотите всплыть и где эти данные живут.Ваш вопрос говорит "статические веб-страницы", но затем вы упоминаете .cshtml
.Традиционно, когда речь идет о создании собственного поиска, у вас будет доступ к какому-то конкретному набору данных (например, к таблицам в базе данных). намного проще осуществлять поиск по более структурированным данным, чем конечный результат их сброса в различных и разных местах на веб-странице.
Поисковые системы, такие как Google, только индексируют таким образом, потому чтоони обычно не имеют доступа к необработанным данным (хотя некоторый объем «доступа» может быть предоставлен через такие вещи, как JSON-LD и другие формы разметки Schema.org).Другими словами, они действительно читают с веб-страницы по необходимости, потому что это то, с чем им приходится работать.Это, конечно, не тот подход, который вы бы использовали, если бы у вас был доступ к данным напрямую.
Если по какой-то причине вам нужно на самом деле увеличить индекс HTML-содержимого вашего собственного сайта, то вам, по сути, придется делать то, чтоБольшие мальчики делают: создают бота, запускают его по расписанию, сканируют ваш сайт, ссылаются по ссылке, загружают каждый документ, а затем анализируют и обрабатывают его.Конечным результатом будет создание набора структурированных данных, к которым вы действительно сможете запросить данные, поэтому все это в значительной степени просто напрасная трата усилий, если у вас уже есть этих данных.
Однаждыу вас есть данные, какими бы вы ни были, вы просто запрашиваете их.В самых основных формах вы можете сохранить его в виде таблицы в базе данных и буквально выдавать SQL-запросы.Ваши ключевые слова / параметры поиска по сути являются WHERE
оператора SELECT
, поэтому вам нужно найти способ сопоставить получаемые вами ключевые слова / параметры с приемлемым предложением WHERE
, которое достигает этого.
Традиционно вы бы использовали реальную поисковую систему: по сути, базу данных документов, которая разработана и оптимизирована для поиска и, как правило, предоставляет более подходящий для поиска API для запроса.В этом пространстве есть множество вариантов, от развертывания собственных решений до размещенных SaaS-решений, и где угодно между ними.Конечно, расходомер уменьшается по мере увеличения объема работы, которую вы должны выполнять, и становится все больше из коробки.
Один из популярных вариантов с открытым исходным кодом и в значительной степени бесплатный - это Elasticsearch.Он использует индексы Lucene, которые он объединяет в кластерной среде для обеспечения отработки отказа и масштабирования.Развертывание - чудовище, если не сказать больше, хотя оно стало значительно лучше с такими вещами, как контейнеризация и оркестровка.Вы можете относительно легко подключить кластер Elasticsearch к чему-то похожему на Kubernetes, хотя вам все же, вероятно, потребуется немного настроить.У Elasticsearch также есть опции хостинга, но вы знаете, что это стоит.