I have title (varchar), description (text), keywords (varchar) fields в mysql table.
I kept keywords field як I thought I would be searching в цій field only. Але я зараз потрібна для пошуку над усіма трьома полями. so for keywords "word1 word2 word3", my query becomes
SELECT * FROM myTable WHERE (name LIKE "%word1%" OR description LIKE "%word1%" OR keywords LIKE "%word1%" OR name LIKE "%word2%" OR description LIKE "%word2%" OR keywords LIKE "% word2%" OR name LIKE "%word3%" OR description LIKE "%word3%" OR keywords LIKE "%word3%") AND status = "live"
Looks a bit messy але ці роботи. Але зараз я потребую в здійсненні синонімного пошуку. so для given word assuming there are a few synonyms available this query becomes more messy as I loop through all of the words. Як потреби є отримання clearer, я повинен потребувати зробити цей мійТабель до деяких інших Tables як добре.
- Чи є ти інший метод/технологія ви може recommend to me?
Do you think the above way is messy and will cause problems as the data grow?
How can I avoid above mess? Is there any cleaner solution I can go by? Any example will help me.
EDIT
@Peter Stuifzand suggested me that I could create one search_index table and store all 3 fields (title,keyword,desc) info on that and do full text search. Я бачу те, що додатково цей table буде включати вказівки до могоTable primary key as well.
Але мій розширений пошук може включати joining mytable з категорією table, geographic_location table (для searching within 10, 20 miles etc), filtering з деякими критеріями і курсом, ведення результатів пошуку. Do you think using mysql fulltext will not slow it down?
By Ibrahim Diallo
Published Jul 2 2014 ~ 16 minutes readSearch is an important feature on a website. Коли ми маємо кілька читачів, щоб зробити особливу увагу на моєму blog, вони використовуються для пошуку. Це використовувався для використання Google Search, але я маю змогу змінити його власну home-brewed version не може бути можу бути неможливим, але він був зацікавлений у питанні.
Якщо ви є в hurry і краще, щоб ваш веб-сайт для пошуку, добре, що я роблю, використовуючи Google.
// У search.php file $term = isset($_GET["query"])?$_GET["query"]: ""; $ term = urlencode ($ term); $website = urlencode("www.yourwebsite.com"); $redirect = "https://www.google.com/search?q=site%3A($website)+($term)"; header("Location: $redirect"); exit;
What it does is pretty simple. Get the term passed by the user, and forward it to Google search page. Використовувати пошуковий результат результатом для нашого поточного будинку за допомогою сайту: ключове слово в пошуку пошуку. Всі ваші сторінки, що є indexed by Google буде доступна через search now. Якщо ви хочете, щоб вибрати свій пошук в домашній кімнаті, то пристосування.
Homemade Search Solution
Перед тим, як будь-який день, намагайтеся використовувати пошукову техніку на цьому blog. Це використовує той самий процес, що я буде описаний нижче. If you feel that this is what you want then please continue reading.
Це рішення є захопленим до малих веб-сайтів. Я можу використовувати LIKE з wild cards на обидва кінці, аналіз вашого пошуку може бути indexed. Це рішення буде працювати добре для вашого blog або особистий веб-сайт, що не містить докладних тонів з data.
Note: If you have 5000 blog posts you are still fine. .
We will take the structure of this blog as a reference. Each blog post has:
- A title p_title
- A url p_url
- A summary p_summary
- A post content p_content
- And catergories category.tagname
Для всієї сфери, що матчі з нашим пошуковим терміном, ми будемо думати про це. Скорість буде базуватися на важливості матчу:
// The exact term matches is found in the title $scoreFullTitle = 6; // match the title in part $scoreTitleKeyword = 5; // The exact term matches is found in the summary $scoreFullSummary = 5; // Match the summary in part $scoreSummaryKeyword = 4; // The exact term matches is found in the content $scoreFullDocument = 4; // match the document in part $scoreDocumentKeyword = 3; // matches a category $scoreCategoryKeyword = 2; // matches the url $scoreUrlKeyword = 1;
Перед тим, як отримати перевірену, там є кілька слів, які не можуть сприяти тому, щоб знайти, що повинні бути виправлені. Докладніше "in", "it", "a", "the", "of" ... . Ви будете отримувати трубки від і вільний до того, щоб отримати будь-яке слово, що ви думаєте. Інше це є, ми будемо вести до кінця строку нашої потреби. Ви не повинні скористатися ним, щоб отримати літературу в пошуковій зоні і розбити ваш MySQL Server.
// Remove unnecessary words з term search and return them as array function filterSearchKeys($query)( $query = trim(preg_replace("/(\s+)+/", " ", $query)); $words = array();// expand this list with your words. "he", "me", "us", "they", "she", "to", "but", "that", "this", "those", "then");$ c = 0; foreach(explode(" ", $query) as $key)( if (in_array($key, $list))( continue; ) $words = $key; if ($c >= 15)( break; ) $c++ ; ) return $words; ) // limit words number of characters function limitChars($query, $limit = 200)( return substr($query, 0,$limit); )
Ваші функції функцій можуть бути в даний час обмеженою характеристикою count і filtr useless words. Наскільки ми будемо впроваджувати наше algoritm, щоб дати вказівку протягом усього часу, ми будемо find a match. We will match words using the if statement and accumulate points as we match more words. At the end we can use that score to sort our results
Note: I will not be showing how to connect to MySQL database. Якщо ви маєте проблеми з ефективним з'єднанням з Database I recommend reading this .
Let's give our function a structure first. Note I left placeholders як ми можемо implement sections separately.
Function search($query)( $query = trim($query); if (mb_strlen($query)===0)( // не потрібно для empty search right? return false; ) $query = limitChars($query) // Weighing scores $scoreFullTitle = 6; $scoreTitleKeyword = 5; $scoreFullSummary = 5; $scoreSummaryKeyword = 4; $scoreFullDocument = 4; $scoreDocumentKeyword = 3; $query), $escQuery = DB::escape($query); (); $urlSQL = array(); p_url, p.p_summary,p.p_content,p.thumbnail, ((-- Title score ".implode(" + ", $titleSQL).")+ (-- Summary ".implode(" + ", $sumSQL) .")+ (-- document ".implode(" + ", $docSQL).")+ (-- tag/category ".implode(" + ", $categorySQL).")+ (-- url ". implode(" + ", $urlSQL).")) як relevance FROM post p WHERE p.status = "published" HAVING relevance >
У роботі, всі терміни будуть обмежуватися як важливість variable і ми можемо використовувати його для виконання результатів.
Matching full occurrences
We make sure we have some keywords first then add our query.
If (count($keywords) > 1)( $titleSQL = "if (p_title LIKE "%".$escQuery."%",($scoreFullTitle),0)"; $sumSQL = "if (p_summary LIKE "%" .$escQuery."%",($scoreFullSummary),0)"; $docSQL = "if (p_content LIKE "%".$escQuery."%",($scoreFullDocument),0)"; )
Those are the matches with higher score. Якщо пошукові терміни свідчать про те, що вони містять, вони будуть мати великі зміни з подання на top.
Matching keywords occurrences
We loop через all keywords and check if they match any of the fields. Для категорії матчу, я використовую sub-query since a post can have multiple categories.
Foreach($keywords as $key)( $titleSQL = "if (p_title LIKE "%".DB::escape($key)."%",($scoreTitleKeyword),0)"; $sumSQL = "if (p_summary LIKE "%".DB::escape($key)."%",($scoreSummaryKeyword),0)"; $docSQL = "if (p_content LIKE "%".DB::escape($key)."% ",($scoreDocumentKeyword),0)"; $urlSQL = "if (p_url LIKE "%".DB::escape($key)."%",($scoreUrlKeyword),0)"; $categorySQL = "if ((SELECT count(category.tag_id) FROM category JOIN post_category ON post_category.tag_id = category.tag_id WHERE post_category.post_id = p.post_id AND category.name = "".DB::escape($key)."") > 0,($scoreCategoryKeyword),0)"; )
Також ви вважаєте, що коментар до того, що ви думаєте, що ці variables не є empty arrays або query will fail.
// Just incase it"s empty, add 0 if (empty($titleSQL))( $titleSQL = 0; ) if (empty($sumSQL))( $sumSQL = 0; ) if (empty($docSQL))( $docSQL = 0; ) if (empty($urlSQL))( $urlSQL = 0; ) if (empty($tagSQL))( $tagSQL = 0; )
Наприкінці цих робіт є всі знайдені і приєднані до них, щоб визначити значення, пов'язане з тим, щоб знайти теку.
// Remove unnecessary words з term search and return them as array function filterSearchKeys($query)( $query = trim(preg_replace("/(\s+)+/", " ", $query)); $words = array();// expand this list with your words. "he", "me", "us", "they", "she", "to", "but", "that", "this", "those", "then");$ c = 0; foreach(explode(" ", $query) as $key)( if (in_array($key, $list))( continue; ) $words = $key; if ($c >= 15)( break; ) $c++ ; ) return $words; ) // limit words number of characters function limitChars($query, $limit = 200)( return substr($query, 0,$limit); ) function search($query)( $query = trim ($query); if (mb_strlen($query)===0)( // не потрібно для empty search right? return false; ) $query = limitChars($query); // Weighing scores $scoreFullTitle = 6; scoreTitleKeyword = 5; $scoreFullSummary = 5; $scoreSummaryKeyword = 4; $scoreFullDocument = 4; $scoreDocumentKeyword = 3; $scoreCategoryKeyword = 2; $scoreUrlKeyword = 1; $keywords = filterSearchKeys($query); $escQuery = DB::escape($query); // докладніше про те, щоб отримати db object $titleSQL = array(); $ sumSQL = array(); $docSQL = array(); $categorySQL = array(); $urlSQL = array(); /** Matching full occurences **/ if (count($keywords) > 1)( $titleSQL = "if (p_title LIKE "%".$escQuery."%",($scoreFullTitle),0)"; $sumSQL = "if (p_summary LIKE "%".$escQuery."%",($scoreFullSummary),0)"; $docSQL = "if (p_content LIKE "%". 0)"; ) /** Matching Keywords **/ foreach($keywords as $key)( $titleSQL = "if (p_title LIKE "%".DB::escape($key)."%",($scoreTitleKeyword ),0)"; $sumSQL = "if (p_summary LIKE "%".DB::escape($key)."%",($scoreSummaryKeyword),0)"; $docSQL = "if (p_content LIKE "% ".DB::escape($key)."%",($scoreDocumentKeyword),0)" $urlSQL = "if (p_url LIKE "%".DB::escape($key)."%",( $scoreUrlKeyword),0)"; $categorySQL = "if ((SELECT count(category.tag_id) FROM category JOIN post_category ON post_category.tag_id = category.tag_id WHERE post_category.post_id = p.post_id AND category.name) DB::escape($key)."") > 0,($scoreCategoryKeyword),0)"; ) // Just incase it"s empty, add 0 if (empty($titleSQL))( $titleSQL = 0; ) if (empty ($ sumSQL)) ( $ sumSQL = 0; ) if (empty($docSQL))( $docSQL = 0; ) if (empty($urlSQL))( $urlSQL = 0; ) if (empty($tagSQL))( $tagSQL = 0; ) $sql = " SELECT p.p_id,p.p_title,p.p_date_published,p.p_url, p.p_summary,p.p_content,p.thumbnail, ((-- Title score ".implode(" + ", $titleSQL)). ")+ (-- Summary ".implode(" + ", $sumSQL).")+ (-- document ".implode(" + ", $docSQL).")+ (-- tag/category ".implode (" + ", $categorySQL).")+ (-- url ".implode(" + ", $urlSQL).")) as relevance FROM post p WHERE p.status = "published" HAVING relevance > 0 ORDER BY relevance DESC,p.page_views DESC LIMIT 25"; $results = DB::query($sql); if (!$results)( return false; ) return $results; )
Now your search.php file can look like this:
$term = isset($_GET["query"])?$_GET["query"]: ""; $search_results = search($term); if (!$search_results) ( echo "No results"; exit; ) // Print page with results here.
Ми створили простий пошук algorithm, що може бути приємним для content. I arbitrarily chose score for each match, feel free to tweak it to something that works best for you. And there is always room for improvement.
Це хороша ідея для руху search term coming від своїх користувачів, цей спосіб ви можете скористатися if most users search for the same thing. If there is a pattern, then you can save them trip and just cache the results using Memcached.
Якщо ви шукаєте цей пошук algoritm в дії, ходьба і спробувати, щоб підписати на сторінці на сторінці пошуку вгорі на сторінці. Я мав змогу поставити інші особливості, як відновити частину, де стріляли були в тексті. Feel free to add features to yours.
Did you like this article? Ви можете побачити, щоб скакнути більше нескінченних ones. .
On a related note, там є деякі цікаві статті.
Це час, щоб зробити з mysql_* функції once and for all. Ці методи є розслабленою і повільною. Time до upgrade має тривалий час, і ми будемо бачити, де. Since I cannot force every author to update their tutorial and blogs, I decided to write a post to hopefully rank better and provide essential information to help new comers.
Створення вашого свого веб-сайту повинно бути дуже різним. Hosting companies як Godaddy або Hostgator зробити його добре для будь-якого, щоб отримати started; WordPress blog.If this is what you are looking for you should head to Godaddy.com right now. We are done here. без busting your wallet, ви повинні йти до правого місця.
Vim is my favorite text editor on the terminal. Після грання для малого while з nano and emacs , я остаточно вилучений з вим для його simplity (bare with me please). Але це може бути customized і використаний як entire IDE, я використовую його в першу чергу для editing files на моїх серверів і роблячи невеликі but crucial changes. Let's not get into Editor war and get started.
Comments(45)
Zaryel Aug 12 2015:
Ian Mustafa Sep 26 2015:
Rob Sep 29 2015:
adeem Feb 11 2016:
Ivan Venediktov Apr 9 2016.
Безумовно, про значення метатегів знає кожен, хто має хоч якесь уявлення про пошукове просування. Все в курсі важливості тегів title, description, h1-h6, alt та інших. Ніхто не заперечує, що вони впливають на оптимізацію веб-сайту. Але до одного з тегів пошукові системи належать неоднозначно - до тегу ключовихслів.
В останні роки в Мережі розгорнулася спекотна дискусія, яка не вщухає донині: чи варто взагалі використовувати метатег keywords? На жаль, точної відповіді досі ніхто не може дати. Розглянемо різні погляди і спробуємо розібратися у питанні.
Що таке ключові слова?
Keywords - це ключові слова (не більше 20 для однієї сторінки сайту), які відповідають вмісту сторінки.
У коді сторінки цей метатег виглядає так:
Спочатку тег істотно впливав на релевантність сторінок сайту, а отже, і на виведення сайту в топові позиції пошукових систем.
Знаючи про це, власники сайту почали хитрувати – зловживати keywords або додавати велику кількість недоречних слів у цей тег. І пошукові системи досить швидко це виявили.
Що ж відбувається зараз?
Як кажуть, з крайності в крайність: у результаті пошукові системи перестали надавати даному тегу взагалі якесь значення.
Яндекс
Представники Яндекса заявили про keywords: «…може враховуватись при визначенні відповідності сторінки пошуковим запитам».
Звернемо увагу, що ключове слово тут може. Адже можезовсім не означає враховується.
Система не залишає жодних сумнівів і не дає ґрунту для роздумів. Тут все лаконічно та ясно: "У нас не буде використовувати ключові слова meta-tag в search-ranking", "Google не усвідомлює ключові слова meta tag для років і поточно ми не потребуємо змінити те, що політика".
"Ми не використовуємо метатег keywords у пошуковому ранжируванні", "Google ігнорує метатег keywords протягом багатьох років, і в даний час немає необхідності змінювати цю політику".
Rambler, Yahoo, Mail.ru
Поділяють думку Гугла і вважають, що метатег ключовихслів вичерпав себе. Тому зовсім не враховується цими пошуковими системами.
Але чому багато хто, як і раніше, використовують keywords?
Швидше за все це пов'язано з неоднозначним формулюванням Яндекса про тег. Логіка власників сайтів така: якщо є надія, що Яндекс врахує тег, а Google, Rambler, Yahoo і Mail.ru ставляться до метатегу нейтрально, то від його заповнення гірше не стане.
А як стане?
Серед оптимізаторів існує думка, що заповнення тега keywords може завдати шкоди. Якщо пошукові системи не враховують тег як тег, то текст, вписаний у нього, зчитується як звичайний текст сайту. І якщо ці ключі, ви вже використовували в інших тегах і в тілі тексту, тобто ризик «переспамати» сторінку ключами. Ну а за переспам (надмірну нудоту) можна потрапити під фільтр.
Погляд 1PS
Досі ми описували загальну ситуацію та різні думки щодо питання. У кожного своя думка. Наша полягає в тому, що keywords тег краще не заповнювати. Користі від нього точно немає, а ось ризик потрапити під фільтр все ж таки є.
Краще просувати сайт за рахунок правильного контенту, тегів
P.S. Успіхів вам у просуванні свого ресурсу.
На жаль, безліч клієнтів зі своїми інтернет-маркетингом і веб-сайтами, і одне питання для того, щоб отримати це “How do you add keywords to a website?” Ви маєте зображення за допомогою надзвичайно складних формул і кодів в комп'ютері.
Але truth is the basics are easier than you might think. У вас є тільки наші клієнти, які керують своїми основними домашніми blogs як ключові слова їхніх веб-сторінок, які вони можуть бути зроблені на search engines easier. Результат цього blog article є для тебе, щоб мати багато важливих речей про те, як додати ключові слова до веб-сайту. Чи не потрібна вам, щоб вийти в час?
Why Should You Know How to Додати Keywords to a Website?
Щоб дізнатися, як додати ключові слова до веб-сайту ви будете здатні до ключових слів ваших нових blogs, веб-сторінок, і інших інтернет-маркетингу матеріалів. Ви будете мати загальний контекст для того, що SEO є дуже важливою для вашого бізнесу.
How Can Adding Keywords to My Website Help My Business?
Adding keywords to your website helps search engines understand what your website can offer someone searching, and ultimately bring you more qualified traffic. How? З ідентифікаторами, як ключові слова. Без ключових слів на веб-сторінках сайтів не є способом для пошуку знарядь до категорії свій веб-сайт і показує його в правих людях.Think of it this way, як добре написана стаття має thesis, і supporting arguments that relate to thesis. Readers well written papers мають clear understanding of what the subject is and what the paper is about. Це являє собою саму теорію за допомогою Google і інших значень пошуку. У fact two students від Stanford створений Google з цією ідентичною idea в mind.
Добре зроблені веб-сайти мають основний предмет, а також мають subкатегорії, що полягають в основному предметі, і через клавіатуру всіх цих областей будуть здатні до реального зображення в search engines, і люди searching можуть бути виконані якомога більше. . For example:
Your Main Subject Might Be: Doughnuts
Your Sub-Categories or Topics Could Be: Cake, Dougnut Holes, Bars,…
Choosing Keywords for Your Website
Тепер, що ви підтримуєте кадр роботи з сайту і як його matters it's time to choose keywords. How? We use a number of tools and perform extensive research for our keywords; However one tool that is free is the Keyword Tool. Simply input your location information and category, then type in the main subject of your website. The tool will generate number of keywords, and give you stats like these:
Competition:(Low, Med, High) Цей текст ви знаєте, що багато людей є словом для того, щоб слово або слово. Підвищення конкуренції більше різновидів, що є на рівні високої в Google для того, щоб знайти територію.
Global Monthly Volume: Як багато searches є зроблені протягом місяців Global for that term.
Local Monthly:Він визначається за інформацією про те, щоб йти в свій пошук. Якщо ви визначили вашу місцевість як U.S. буде це число послідовних досліджень для того, що термін в США.
При цьому інструменті є зручним для використання, всі ключові слова не можуть подолати самих. У факті деяких ключових слів, що ви робите більше, ніж інші, і деякі місії, що ви маєте багато транспорту, що невідомі. Це why we highly recommend business owners hiring agency that is educated в SEO і клавіатури, щоб допомогти їм з своїм інтернет-маркетингу.
How Many Keywords До Я потрібна до Add Per Page?
Після того, як ви думаєте про вашу ключову клавіатуру, ви будете потрібні для навчання. one keywordдля всіх наших веб-сторінок або blogs. Keywords повинні бути конкретними на сторінці карти і відношення до вашого overall website subject.
Example of Good Keyword Choice:
Main Website Theme: Donut
Website Page: Maple Donut
Assigned Keyword: Best Maple Donut
Example of Bad Keyword Choice:
Main Website Theme: Donut
Website Page: Maple Donut
Assigned Keyword: Donut recipes
How to Add Keywords to Your Website Page:
Якщо adwords keywords до свого веб-сайту, це є важливим для включення вашого ключового слова в 6 місць на одній сторінці вашого веб-сайту. Включення вашого ключового слова в ці шість регіонів буде help search engines identify the subject of your page and rank your page in search results.
- Page Title
- Meta Description
- Header
- Sub Header
- Body Paragraphs
- Image Alt Tags
Page Title & Meta Description:
Page Titles & Meta Descriptions є більше технічної частини ключового слова вашого веб-сайту. However, it is important to recognize how valuable they can be for your internet marketing efforts. What are Page Titles & Meta Descriptions? Вони є частиною вашої веб-сайту в даний час, показуючи в результатах пошуку, вони є першим враженням searcher gets з нашої веб-сторінки.
Якщо ви не маєте доступу до вашого веб-сайту Сторінки або Meta Descriptions будуть для нього важливими для перевірки з вашим веб-сайтом управління компанією, що ці області є пов'язані з SEO.
Headers:
Headers є багато як billboards для search engines. Вони є одним з найбільших способів до показу технічних знань, які ваші основні предмети є для вашої сторінки. Це важливе, що ви включаєте вашу клавішу клавіші в вашому стилі.
Sub-Headers:
Sub-headers є ще одна область для пошуку технічних знарядь, які ви хочете, щоб веб-сторінка до be found for. Така територія як справжня держава, якщо ви не намагаєтеся включити ваші ключові слова в sub-header, ви збираєтеся.
Body Paragraph:
Якщо писати вміст вмісту для вашого веб-сайту, ви повинні намагатися включати ваше слово, або на великі частини з вашого ключового слова. Remember to keep your writing natural, search engines will actually penalize you if your writing over stuffs keywords and appears unnatural. Коли ви першим намагаєтеся отримати з ключовими словами ви можете знайти його, але помилки практикують! Це справді ви можете отримати easier, і ви будете отримати під час перегляду свого вмісту для пошуку ключових слів.
Image Alt Tags:
Images are a great addition to any webpage, в дійсності вони можуть навіть help search engines rank you. Alt tags є essentially a label, що ви збираєтеся до вашого зображення або для того, щоб знайти пошукові матеріали може read the image. Якщо ви не використовуєте Alt tags для зображень у пошукових інструментах не буде потрібне. By keywording the image Alt Tags ви є telling search engines "Я використовую зображення і його позначки до предмета моєї сторінки."
Там, що ви знаєте, тепер ви знаєте, як принципи, як довести ключові слова до веб-сайту. Ми знаємо, що вони дають, але якщо ви маєте час, щоб отримати свій новий blogs або веб-сайту вмісту, вони будуть високо recommend, і ви можете використовувати деякі типи. Ці tactics можуть bring you more traffic до вашого веб-сайту, і help qualify your website leads. Що засобами не були відвідувані відвідувачі і багато customers for your business.
Якщо ви знайдете цей article helpful in anyway please 'share' it with a friend.
У мене вже кілька разів просили написати статтю про те, як реалізувати пошук на сайті через PHP. Завдання це непросте, я навіть сказав - дуже непросте, оскільки тут є величезна кількість нюансів і перешкод. У цій статті я розберу алгоритм пошуку на сайті.
Припустимо, що на нашому сайті є безліч різних матеріалів (статей, новин, нотаток та іншого). Все це добро знаходиться у базі даних. І наше завдання - реалізувати пошук на сайті. Найпростіший алгоритм наступний:
- Створити HTML-формуз рядком пошуку, а також кнопкою " SubmitУ текстове поле користувачі вводитимуть пошуковий запит, а далі натискатимуть на кнопку.
- Отримати пошуковий запит (як правило, що передається методом GET, але іноді застосовують і POST), а також, з метою захисту від XSSпропустити його через функцію htmlspecialchars().
- Зробити вибірку з відповідних таблиць (із статтями, новинами, нотатками та іншим) тих записів, у яких міститься пошуковий запит. Показую зразковий SQL-запит для таких випадків: SELECT * FROM articles WHERE `text_article` LIKE %search% Відповідно, замість searchпідставляється рядок пошуку.
- Отримавши записи, у потрібному вигляді виводимо їх, бажано, за релевантністю. Я, наприклад, зробив у себе на сайті так: де найбільше збігів - та стаття і релевантніше, отже, ставлю її першою. Швидше за все, Вам цей спосіб оцінки релевантності також підійде.
Багато хто з Вас скаже, що нічого складного тут немає. І почасти мають рацію, проте, давайте розберемо такий приклад рядка пошуку: " шукаю цей текст". Постає питання: " А що, власне, шукається?Чи шукається точне входження тексту? шукаю цей текстАбо, можливо, шукається текст, де присутні всі три слова, але які можуть слідувати далеко не одне за одним. Або, можливо, шукається текст, де є хоча б одне з цих слів.
І тут завдання значно ускладнюється. Можна створити складну систему синтаксису (як у пошукових системах), наприклад, шукається точне входження, якщо запит заданий у лапках. А можна давати вибір користувачам, як вони хочуть проводити пошук (за допомогою radio-кнопок). Таким чином зроблено у мене на сайті. Тому до попереднього алгоритму додається ще один пункт: складання SQL-запит. Ось приклад SQL-запиту, коли потрібно витягнути всі матеріали, у яких є хоча одне слово із запиту " шукаю цей текст":
SELECT * FROM articles WHERE (`text_article` LIKE "%шукаю%" OR `text_article` LIKE "%цей%" OR `text_article` LIKE "%текст%")
Відповідно, у скрипті пошуку Ви повинні генерувати подібні SQL-запити, посилати до бази даних, отримувати відповідь та виводити її. Це все ще більше ускладнюється, якщо Ви виводите записи з релевантності, тому що важко відразу сказати, що має бути релевантніше: 3 точних входження запиту, або 10 входжень частин запиту. У мене на сайті перевага завжди віддається точним входженням, але цей момент вже досить спірний. Безумовно, це складно, і якщо це Ви робите вперше, кілька годин Ви точно витратите. Сподіваюся, що мій алгоритм реалізації пошуку на сайті через PHPВам допоможе.