Чи може хтось вказати мене в правильному напрямку? У мене дійсно немає досвіду написання коду, але я швидко навчаюся. Я не намагаюся сказати, що буде легко, але сподіваюся, що хтось може мені допомогти ...
Чи може хтось вказати мене в правильному напрямку? У мене дійсно немає досвіду написання коду, але я швидко навчаюся. Я не намагаюся сказати, що буде легко, але сподіваюся, що хтось може мені допомогти ...
Відповіді:
Я написав це для блогу, у якого я мав зворотній шлях, коли .... його більше немає в Інтернеті, так ... ось воно! :
Як написати пошукову систему
Даррен Роуз на сайті probolgger.net проводить проект з написання групових записів на тему "Як це зробити". Це один з небагатьох блогів, які я читаю регулярно, тому я вважаю, чому б не написати щось, що варто прочитати для зміни, а не мій стандартний жорстокий рент, де я нарешті погрожую вдарити Уго Чавеса в горло.
Я вирішив написати «Як написати пошукову систему». Я вибрав цю тему з двох причин:
Мій клієнт - інтернет-роздрібний торговець значних розмірів, тому я не шукаю всю мережу лише на їхньому веб-сайті, точніше лише на продукцію, що продається на їхньому сайті. Тим не менш, ті самі методи можуть бути використані для написання більш складних, які використовуються для пошуку в Інтернеті. Я знаю, що це не технологічний блог, тому я не буду надто заглиблюватися в технічні характеристики, а також не буду обговорювати технічні вимоги \ потреби в енергії для обробки або веб-сканування.
Я використовую досить просту техніку, у мене є таблиця (tblKeywords) з трьома полями:
Перше, що я роблю, - це збирати окремі слова з будь-якого місця, яке є релевантним. Для свого клієнта я витягну слова таблиці продуктів. Зокрема з полів Itemid, ItemName, ItemShortDescription, ItemLongDescription, виробник, виробникSKU, категорія1, категорія2, категорія3 тощо. Якщо ви індексуєте веб-сторінки, ви можете витягнути дані з тексту сторінки, назви сторінки, URL-адреси або посилань на інших сторінках, які посилаються на індексовану сторінку.
Значення ваги визначається тим, звідки походить ключове слово. Наприклад, у моєму випадку артикул артикулу виробника отримав би вагу 100, а слово з назви предмета може мати вагу 25. Слово з ItemLongDescription може отримати вагу 5. Якщо ви індексуєте веб-сторінки, слова з назви сторінки може набиратись вагу 75, а слово, виділене жирним шрифтом із тексту сторінки, може набирати вагу 10. Якщо слово повторюється більше одного разу або \ і в більш ніж одному місці, ви додаватимете вагу кожного разу це відбувається. Наприклад, якщо слово "Сорочка" походить з двох місць для ItemId = 12345, TheNameName (вага 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-го, я пропоную вам перевірити його, пропонуються безкоштовно.