Как реализовать поиск по статическому содержимому в файлах cshtml - PullRequest
0 голосов
/ 10 июля 2019

Я использую ядро ​​asp.net и Razor - и, поскольку это справочная система, я хотел бы реализовать какое-то средство поиска, чтобы возвращать список результатов с гиперссылками на основе условий поиска.

Я бы хотел, чтобы поиск выполнялся по существу над содержимым, содержащимся в тегах

и, а затем связывал его с соответствующей страницей / представлением.

Каков наилучший способ сделать это?

Я даже не уверен, как вы получите представление о реальном содержании ваших собственных страниц cshtml и затем перейдете оттуда.

1 Ответ

0 голосов
/ 10 июля 2019

Этот вопрос далеко слишком широкий.Тем не менее, я могу дать вам несколько советов.

Во-первых, вам нужно определить, что вы действительно хотите всплыть и где эти данные живут.Ваш вопрос говорит "статические веб-страницы", но затем вы упоминаете .cshtml.Традиционно, когда речь идет о создании собственного поиска, у вас будет доступ к какому-то конкретному набору данных (например, к таблицам в базе данных). намного проще осуществлять поиск по более структурированным данным, чем конечный результат их сброса в различных и разных местах на веб-странице.

Поисковые системы, такие как Google, только индексируют таким образом, потому чтоони обычно не имеют доступа к необработанным данным (хотя некоторый объем «доступа» может быть предоставлен через такие вещи, как JSON-LD и другие формы разметки Schema.org).Другими словами, они действительно читают с веб-страницы по необходимости, потому что это то, с чем им приходится работать.Это, конечно, не тот подход, который вы бы использовали, если бы у вас был доступ к данным напрямую.

Если по какой-то причине вам нужно на самом деле увеличить индекс HTML-содержимого вашего собственного сайта, то вам, по сути, придется делать то, чтоБольшие мальчики делают: создают бота, запускают его по расписанию, сканируют ваш сайт, ссылаются по ссылке, загружают каждый документ, а затем анализируют и обрабатывают его.Конечным результатом будет создание набора структурированных данных, к которым вы действительно сможете запросить данные, поэтому все это в значительной степени просто напрасная трата усилий, если у вас уже есть этих данных.

Однаждыу вас есть данные, какими бы вы ни были, вы просто запрашиваете их.В самых основных формах вы можете сохранить его в виде таблицы в базе данных и буквально выдавать SQL-запросы.Ваши ключевые слова / параметры поиска по сути являются WHERE оператора SELECT, поэтому вам нужно найти способ сопоставить получаемые вами ключевые слова / параметры с приемлемым предложением WHERE, которое достигает этого.

Традиционно вы бы использовали реальную поисковую систему: по сути, базу данных документов, которая разработана и оптимизирована для поиска и, как правило, предоставляет более подходящий для поиска API для запроса.В этом пространстве есть множество вариантов, от развертывания собственных решений до размещенных SaaS-решений, и где угодно между ними.Конечно, расходомер уменьшается по мере увеличения объема работы, которую вы должны выполнять, и становится все больше из коробки.

Один из популярных вариантов с открытым исходным кодом и в значительной степени бесплатный - это Elasticsearch.Он использует индексы Lucene, которые он объединяет в кластерной среде для обеспечения отработки отказа и масштабирования.Развертывание - чудовище, если не сказать больше, хотя оно стало значительно лучше с такими вещами, как контейнеризация и оркестровка.Вы можете относительно легко подключить кластер Elasticsearch к чему-то похожему на Kubernetes, хотя вам все же, вероятно, потребуется немного настроить.У Elasticsearch также есть опции хостинга, но вы знаете, что это стоит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...