Может ли кто-нибудь указать мне правильное направление? У меня действительно нет опыта написания кода, но я быстро учусь. Я не пытаюсь сказать, что это будет легко, но я надеюсь, что кто-нибудь сможет мне помочь ...
Может ли кто-нибудь указать мне правильное направление? У меня действительно нет опыта написания кода, но я быстро учусь. Я не пытаюсь сказать, что это будет легко, но я надеюсь, что кто-нибудь сможет мне помочь ...
Ответы:
Я написал это для блога, который у меня был когда-то в далеком прошлом, когда ... он больше не в Интернете, поэтому ... вот оно! :
Как написать поисковик
Даррен Роуз, работающий на probolgger.net, проводит проект по написанию групп на все, что угодно. Это один из немногих блогов, которые я читаю регулярно, поэтому я подумаю, почему бы не написать что-то, что стоит почитать для разнообразия, а скорее мою стандартную яростную напыщенную речь, где я в итоге буду угрожать нанести удар Хьюго Чавесу в горло.
Я решил написать «Как написать поисковик». Я выбрал эту тему по двум причинам:
Мой клиент - это крупный интернет-магазин, поэтому я не ищу по всему интернету только их сайт, а точнее - только товары, которые продаются на их сайте. Тем не менее, для написания более сложной методики, используемой для поиска в Интернете, могут использоваться одни и те же методы. Я знаю, что это не технический блог, поэтому я не буду вдаваться в технические подробности, не буду обсуждать требования к аппаратному обеспечению, вычислительной мощности или сканировать веб-страницы.
Я использую довольно простую технику, у меня есть таблица (tblKeywords) с тремя полями:
Первое, что я делаю, это собираю отдельные слова из любого места, которое имеет отношение к делу. Для моего клиента я вытащу слова из таблицы продуктов. В частности, из полей Itemid, ItemName, ItemShortDescription, ItemLongDescription, Производитель, ManufacturerSKU, Категория1, Категория2, Категория3 и т. Д. Если вы индексируете веб-страницы, вы можете извлечь данные из текста страницы, заголовка страницы, URL-адреса или ссылок на других страницах, которые ссылаются на индексируемую страницу.
Значение веса определяется тем, откуда пришло ключевое слово. Например, в моем случае SKU Изготовителя Предмета получил бы вес 100, в то время как слово из имени Предмета могло бы получить вес 25. Слово из ItemLongDescription может получить вес 5. Если вы индексируете веб-страницы, слова из заголовка страницы может получить вес 75, в то время как слово, выделенное жирным шрифтом, из текста страницы может получить вес 10. Если слово повторяется более одного раза или \ и в более чем одном месте, вы будете прибавлять вес для каждого раза такое случается. Например, если слово «Рубашка» происходит из двух мест для ItemId = 12345, ItemName (вес 25) и появляется дважды в ItemLongDescription (Вес 5 x2 = 10), то слово «рубашка» будет иметь общий вес 35 для ItemId = 12345.
Если кто-то выполняет поиск по "розовой рубашке", я ищу в своей таблице все слова "Розовый" или "Рубашка" и подсчитываю вес. Отображение предметов с наибольшим общим весом сверху.
SQL:
Select Itemid, sum(weight) as totWeight from tblKeywords
group by itemId having keyword in ('pink','shirt')
Итак, вот он, базовый (и быстрый) поисковик. Конечно, это еще не все, например, пунктуация, HTML-код и бесполезные ключевые слова, такие как «и», «если», «или». Это не относится к поиску ключевых фраз, но вы можете использовать похожую систему для фраз, если вы можете выяснить, где они начинаются и заканчиваются.
Свободно распространяемый проект « Введение в поиск информации» станет вашим основным справочным материалом. Он обрабатывает поиск (поиск информации) от базового до продвинутого уровня.
Поисковые системы основаны на веб-сканерах , вам необходимо выяснить, как создать один из этих присосок, прежде чем вы сможете разработать веб-сайт для отображения его результатов (вам потребуется быстрая и эффективная база данных для этого).
Это вводный курс для CS, который начнется 20-го, я предлагаю вам проверить его, он предлагается бесплатно.