Имам полета за заглавие (varchar), описание (текст), ключови думи (varchar) в моята таблица mysql.
Запазих полето за ключови думи, тъй като мислех, че ще търся само в това поле. Но сега изисквам търсене между всичките три полета. така че за ключови думи "word1 word2 word3", моята заявка става
SELECT * FROM myTable WHERE (име КАТО "%word1%" ИЛИ описание КАТО "%word1%" ИЛИ ключови думи КАТО "%word1%" ИЛИ име КАТО "%word2%" ИЛИ описание КАТО "%word2%" ИЛИ ключови думи КАТО "% word2%" ИЛИ име КАТО "%word3%" ИЛИ описание КАТО "%word3%" ИЛИ ключови думи КАТО "%word3%") И статус = "на живо"
Изглежда малко объркано, но това работи. Но сега трябва да внедря търсене на синоними. така че за дадена дума, ако приемем, че има няколко налични синонима, тази заявка става по-объркана, докато преглеждам всички думи. Тъй като изискванията стават все по-ясни, ще трябва да присъединя тази myTable към някои други таблици.
- Има ли друг метод/техника, който можете да ми препоръчате?
Смятате ли, че горният начин е объркан и ще създаде проблеми с нарастването на данните?
Как мога да избегна горната бъркотия? Има ли някакво по-чисто решение, което мога да използвам? Всеки пример ще ми помогне.
РЕДАКТИРАНЕ
@Peter Stuifzand ми предложи да създам една таблица search_index и да съхраня информацията за всичките 3 полета (заглавие, ключова дума, описание) и да направя пълнотекстово търсене. Разбирам, че освен това тази таблица ще включва и препратка към първичния ключ myTable.
Но моето разширено търсене може да включва присъединяване към mytable с таблица Category, таблица geographic_location (за търсене в рамките на 10, 20 мили и т.н.), филтриране по други критерии и, разбира се, сортиране на резултатите от търсенето. Мислите ли, че използването на пълен текст на mysql няма да го забави?
от Ибрахим Диало
Публикувано на 2 юли 2014 г. ~ 16 минути четенеТърсенето е важна функция на уебсайт. Когато малкото ми читатели искат да потърсят определен пасаж в моя блог, те използват полето за търсене. Преди се захранваше от Google Търсене, но оттогава го промених на моя собствена домашно приготвена версия не защото мога да се справя по-добре, а защото беше интересно предизвикателство.
Ако бързате и просто искате сайтът ви да може да се търси, направете това, което направих преди, използвайте Google.
// Във файла search.php $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)"; заглавие ("Местоположение: $пренасочване"); изход;
Това, което прави, е доста просто. Вземете термина, предаван от потребителя, и го препратете към страницата за търсене на Google. Ограничете резултата от търсенето до текущия ни домейн, като използвате ключовата дума site: в заявката за търсене. Всички ваши страници, които са индексирани от Google, сега ще бъдат достъпни чрез търсене. Ако обаче искате да се справите с търсенето си у дома, продължете да четете.
Домашно решение за търсене
Преди да продължим, опитайте да използвате полето за търсене в този блог. Той използва същия процес, който ще опиша по-долу. Ако смятате, че това е, което искате, моля, продължете да четете.
Това решение е предназначено за малки уебсайтове. Използвам LIKE със заместващи символи в двата края, което означава, че вашето търсене не може да бъде индексирано. Това означава, че решението ще работи добре за вашия блог или личен уебсайт, който не съдържа тонове данни към по-голям уебсайт и може да стане много бавен, което не е това, което правим тук.
Забележка:Ако имате 5000 публикации в блога, все още сте добре. .
Ще вземем структурата на този блог като ориентир. Всяка публикация в блога има:
- Заглавие p_title
- URL адрес p_url
- Резюме p_summary
- Съдържание на публикация p_content
- И категории category.tagname
За всяко поле, което съвпада с нашата дума за търсене, ще му дадем оценка. Резултатът ще бъде базиран на важността на мача:
// точните съвпадения на термина се намират в заглавието $scoreFullTitle = 6; // съответства на заглавието в част $scoreTitleKeyword = 5; // точните съвпадения на термина се намират в резюмето $scoreFullSummary = 5; // съответства на резюмето в част $scoreSummaryKeyword = 4; // точните съвпадения на термина се намират в съдържанието $scoreFullDocument = 4; // съответства на документа в част $scoreDocumentKeyword = 3; // съответства на категория $scoreCategoryKeyword = 2; // съответства на url $scoreUrlKeyword = 1;
Преди да започнем, има няколко думи, които не допринасят много за търсенето, които трябва да бъдат премахнати. Пример "in", "to", "a", "the", "of" ... . Ще ги филтрираме и не се колебайте да добавите всяка дума, която смятате за неуместна. Друго нещо е, че искаме да ограничим дължината на нашето запитване. Ние не искаме потребител да напише роман в полето за търсене и да срине нашия MySQL сървър.
// Премахване на ненужните думи от термина за търсене и връщането им като функция на масив filterSearchKeys($query)( $query = trim(preg_replace("/(\s+)+/", " ", $query)); $words = array(); // разширете този списък с вашите думи $list("in","it","a","the","of","or","I","you", "той", "аз", "нас", "те", "тя", "до", "но", "това", "това", "тези", "тогава"); foreach(explode(" ", $query) като $key)( if (in_array($key, $list))( continue; ) $words = $key; if ($c >= 15)( break; ) $c++ ; ) return $words ; ) // ограничаване на думите брой знаци функция limitChars($query, $limit = 200)( return substr($query, 0,$limit); )
Нашите помощни функции вече могат да ограничават броя на символите и да филтрират безполезни думи. Начинът, по който ще приложим нашия алгоритъм, е като даваме резултат всеки път, когато намерим съвпадение. Ще съпоставяме думи с помощта на оператора if и ще трупаме точки, докато съпоставяме повече думи. В крайна сметка можем да използваме този резултат, за да сортираме нашите резултати
Забележка:Няма да показвам как да се свържете с MySQL база данни. Ако имате проблеми с ефективното свързване с базата данни, препоръчвам да прочетете това.
Нека първо да дадем на нашата функция структура. Забележете, че оставих контейнери, за да можем да внедрим секции поотделно.
Функция search($query)( $query = trim($query); if (mb_strlen($query)===0)( // няма нужда от празно търсене нали? return false; ) $query = limitChars($query) ; // Претегляне на резултати $scoreFullKeyword = 2; $escQuery = DB::escape($query); // вижте бележката по-горе = array(); $urlSQL = array(); /** Съвпадащи пълни думи PLACE HOLDER **/ $sql = "SELECT p. p_id,p.p_title,p.p_date_published,p.p_url, p.p_summary,p.p_content,p.thumbnail, ((- Резултат от заглавието ".implode(" + ", $titleSQL).")+ (-- Резюме ".implode(" + ", $sumSQL) .")+ (- документ ".implode(" + ", $docSQL).")+ (- етикет/категория ".implode(" + ", $ categorySQL).")+ (-- url ". implode(" + ", $urlSQL).")) като релевантност ОТ публикация p WHERE p.status = "published" HAVING relevance >
В заявката всички резултати ще бъдат сумирани като променлива за релевантност и можем да я използваме за сортиране на резултатите.
Съвпадащи пълни срещания
Първо се уверяваме, че имаме някои ключови думи, след което добавяме нашата заявка.
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)"; )
Това са мачовете с по-висок резултат. Ако думата за търсене съвпада със статия, която ги съдържа, те ще имат по-големи шансове да се появят на върха.
Съвпадение на ключови думи
Преглеждаме всички ключови думи и проверяваме дали отговарят на някое от полетата. За съвпадение на категория използвах подзаявка, тъй като публикацията може да има няколко категории.
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 КАТО "%".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)"; )
Освен това, както посочи коментатор по-долу, трябва да сме сигурни, че тези променливи не са празни масиви или заявката ще се провали.
// Просто в случай, че е празно, добавете 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;)
Накрая всички заявки се свързват и добавят заедно, за да се определи уместността на публикацията спрямо думата за търсене.
// Премахване на ненужните думи от термина за търсене и връщането им като функция на масив filterSearchKeys($query)( $query = trim(preg_replace("/(\s+)+/", " ", $query)); $words = array(); // разширете този списък с вашите думи $list("in","it","a","the","of","or","I","you", "той", "аз", "нас", "те", "тя", "до", "но", "това", "това", "тези", "тогава"); foreach(explode(" ", $query) като $key)( if (in_array($key, $list))( continue; ) $words = $key; if ($c >= 15)( break; ) $c++ ; ) return $words ; ) // ограничаване на думите брой знаци function limitChars($query, $limit = 200)( return substr($query, 0,$limit); ) function search($query)( $query = trim ($query); if (mb_strlen($query)===0)( // няма нужда от празно търсене? return false; ) $query = limitChars($query); // Претегляне на резултати $scoreFullTitle = 6 $; scoreTitleKeyword = 5; scoreFullKeyword = 4; $ключови думи = filterSearchKeys($query); $escQuery = DB::escape($query); // вижте бележката по-горе, за да получите db обект $titleSQL = array(); $sumSQL = масив(); $docSQL = масив(); $categorySQL = масив(); $urlSQL = масив(); /** Съвпадащи пълни срещания **/ 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)"; ) /** Съвпадащи ключови думи **/ foreach($keywords as $key)( $titleSQL = "if (p_title LIKE "%".DB::escape($key)."%",($scoreTitleKeyword ),0)"; $sumSQL = "if (p_summary КАТО "%".DB::escape($key)."%",($scoreSummaryKeyword),0)"; $docSQL = "if (p_content КАТО "% ".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)"; ) // Просто в случай, че е празно, добавете 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 = " ИЗБЕРЕТЕ p.p_id,p.p_title,p.p_date_published,p.p_url, p.p_summary,p.p_content,p.thumbnail, ((- Резултат от заглавие ".implode(" + ", $titleSQL). ")+ (-- Резюме ".implode(" + ", $sumSQL).")+ (-- документ ".implode(" + ", $docSQL).")+ (-- етикет/категория ".implode (" + ", $categorySQL).")+ (-- url ".implode(" + ", $urlSQL).")) като уместност ОТ публикация p WHERE p.status = "published" HAVING уместност > 0 ПОРЪЧАЙТЕ ПО релевантност DESC,p.page_views DESC LIMIT 25"; $results = DB::query($sql); if (!$results)( return false; ) return $results; )
Сега вашият файл search.php може да изглежда така:
$term = isset($_GET["query"])?$_GET["query"]: ""; $search_results = търсене($term); if (!$search_results) ( echo "Няма резултати"; изход; ) // Отпечатайте страница с резултати тук.
Създадохме прост алгоритъм за търсене, който може да обработва доста голямо количество съдържание. Произволно избрах резултата за всеки мач, не се колебайте да го промените до нещо, което работи най-добре за вас. И винаги има място за подобрение.
Добра идея е да проследявате думата за търсене, идваща от вашите потребители, по този начин можете да видите дали повечето потребители търсят едно и също нещо. Ако има модел, тогава можете да им спестите пътуване и просто да кеширате резултатите с помощта на Memcached.
Ако искате да видите този алгоритъм за търсене в действие, продължете и опитайте да потърсите статия в полето за търсене в горната част на страницата. Добавих допълнителни функции като връщане на частта, където е намерено съвпадението в текста. Чувствайте се свободни да добавите функции към вашите.
Хареса ли ви тази статия? Можете да се абонирате, за да четете още страхотни. .
Във връзка с това, ето няколко интересни статии.
Време е да се справите с функциите на mysql_* веднъж завинаги. Тези методи са остарели и бавни. Времето за надграждане отдавна е минало, но все още го виждаме навсякъде. Тъй като не мога да принудя всеки автор да актуализира своя урок и блогове, реших да напиша публикация, за да се надявам да се класирам по-добре и да предоставя основната информация, за да помогна на новите.
Създаването на собствен уебсайт не би трябвало да е твърде трудно за всеки да започне. Те ви позволяват да създадете цял уебсайт, без изобщо да пишете код Блог на WordPress Ако търсите точно това, трябва да отидете на Godaddy.com, но от друга страна, ако искате да имате контрол и да не бъдете ограничени от недостатъците на споделения хостинг , вие сте попаднали на правилното място.
Vim е любимият ми текстов редактор на терминала. След като играх известно време с nano и emacs, най-накрая се спрях на vim заради неговата простота (моля, без мен). Въпреки че може да се персонализира и използва като цяла IDE, аз го използвам най-вече за редактиране на файлове на моите сървъри и извършване на малки, но важни промени. Нека не влизаме във войната на редакторите и да започнем.
Коментари (45)
Зариел 12 август 2015 г.:
Ян Мустафа 26 септември 2015 г.:
грабя 29 септември 2015 г.:
Адим 11 февруари 2016 г.:
Иван Венедиктов 9 април 2016 г.
Разбира се, всеки, който има поне някаква представа за промоцията в търсачките, знае за значението на мета таговете. Всеки е наясно с важността на заглавието, описанието, h1-h6, alt и други тагове. Никой не отрича, че те влияят на оптимизацията на уебсайта. Но търсачките имат амбивалентно отношение към един от таговете – ключовите думи.
През последните години в интернет се разгоря разгорещен дебат, който продължава и до днес: струва ли си изобщо да използваме мета тага на ключови думи? За съжаление все още никой не може да даде точен отговор. Нека разгледаме различни гледни точки и се опитаме да разберем този въпрос.
Какво представляват ключовите думи?
Ключови думи са ключови думи (не повече от 20 за една страница от сайта), съответстващи на съдържанието на страницата.
В кода на страницата този мета таг изглежда така:
Първоначално тагът имаше значително влияние върху уместността на страниците на сайта и следователно върху класирането на сайта на челни позиции в търсачките.
Знаейки това, собствениците на сайта започнаха да мамят - злоупотребяват с ключови думи или добавят голям брой неподходящи думи към този етикет. И търсачките откриха това доста бързо.
какво се случва сега
Както се казва, от една крайност в друга: в резултат на това търсачките изобщо спряха да придават значение на този етикет.
Яндекс
Представителите на Yandex заявиха следното относно ключовите думи: „... може да се вземе предвид, когато се определя дали дадена страница е подходяща за заявките за търсене“.
Моля, имайте предвид, че ключовата дума тук е Може би. След всичко Може биизобщо не означава взети предвид.
Системата не оставя съмнения и не дава основание за размисъл. Тук всичко е кратко и ясно: „Не използваме мета-таг за ключови думи в класиране при търсене“, „Google пренебрегва мета-тага за ключови думи от години и в момента не виждаме необходимост да променяме тази политика“.
„Ние не използваме мета маркера за ключови думи в класирането при търсене“, „Google пренебрегва мета маркера за ключови думи в продължение на много години и в момента няма нужда да променяме тази политика“.
Рамблер, Yahoo, Mail.ru
Те споделят мнението на Google и смятат, че мета тагът на ключови думи е изчерпал своята полезност. Следователно той изобщо не се взема под внимание от тези търсачки.
Но защо много хора все още използват ключови думи?
Най-вероятно това се дължи на двусмислената формулировка на Yandex относно етикета. Логиката на собствениците на сайтове е следната: ако има надежда, че Yandex ще вземе етикета предвид, а Google, Rambler, Yahoo и Mail.ru са неутрални по отношение на мета маркера, тогава попълването му няма да влоши нещата.
Ами ако стане?
Сред оптимизаторите битува мнението, че попълването на тага ключови думи може да бъде вредно. Ако търсачките не считат етикета за етикет, тогава текстът, включен в него, се чете като обикновен текст на сайта. И ако вече сте използвали тези ключове в други тагове и в тялото на текста, тогава съществува риск от „свръх спам“ на страницата с ключове. Е, свръхспам (прекомерно гадене) може да ви вкара под филтъра.
1PS гледна точка
Дотук описахме общата ситуация и различните мнения по въпроса. Всеки си има своя гледна точка. Нашето мнение е, че е по-добре да не попълвате маркера за ключови думи. Полза от него определено няма, но все пак има риск да попаднете под филтъра.
По-добре е да рекламирате уебсайта си с правилното съдържание и тагове
P.S. Успех в популяризирането на вашия ресурс.
Ние помагаме на различни клиенти с техния интернет маркетинг и уебсайтове и един въпрос, който често получаваме, е „Как добавяте ключови думи към уебсайт?“ Може да си представите как добавяме изключително сложни формули и кодове в компютърен екран.
Но истината е, че основите са по-лесни, отколкото си мислите. Ние дори учим нашите клиенти, които управляват свои собствени бизнес блогове, как да използват ключови думи за страниците на уебсайта си, така че да могат да бъдат намерени по-лесно в търсачките. Целта на тази статия в блога е да ви научи на някои основи за това как да добавяте ключови думи към уебсайт. Не сте сигурни, че не искате да отделите време? Разгледайте нашите SEO услуги тук, ще се радваме да ви помогнем.
Защо трябва да знаете как да добавяте ключови думи към уебсайт?
Като научите как да добавяте ключови думи към уебсайт, вие ще можете да добавяте ключови думи към собствените си блогове, страници на уебсайтове и други материали за интернет маркетинг. Освен това ще получите контекст защо SEO е толкова важно за вашия бизнес.
Как добавянето на ключови думи към моя уебсайт може да помогне на моя бизнес?
Добавянето на ключови думи към вашия уебсайт помага на търсачките да разберат какво може да предложи уебсайтът ви на някой, който търси, и в крайна сметка да ви донесе по-квалифициран трафик. как? С идентификатори, като ключови думи. Без ключови думи на страниците на уебсайта ви няма начин търсачката да категоризира уебсайта ви и да го покаже на правилните хора, които търсят.Мислете за това по този начин, добре написаната статия има теза и подкрепящи аргументи, които се отнасят до тезата. Читателите на добре написани статии имат ясно разбиране за това каква е темата и за какво е статията. Това е същата теория зад Google и други търсачки. Всъщност двама студенти от Станфорд създадоха Google със същата идея.
Добре направеният уебсайт има основна тема и често има подкатегории, които са свързани с основната тема, и чрез ключови думи за всяка от тези области ние сме в състояние да дадем ясна картина на търсачките и хората, които търсят, могат да ви намерят по-лесно . Например:
Вашият основен предмет може да бъде:понички
Вашите подкатегории или теми могат да бъдат:Торта, Дугнут дупки, Барове,...
Избор на ключови думи за вашия уебсайт
Сега, след като разбирате рамката на един сайт и колко е важно, е време да изберете ключови думи. как? Ние използваме редица инструменти и извършваме обширни проучвания за нашите ключови думи; но един инструмент, който е безплатен, е инструментът за ключови думи на Google. Просто въведете информация за вашето местоположение и категория, след което въведете основната тема на вашия уебсайт. Инструментът ще генерира няколко ключови думи и ще ви даде статистика като тази:
конкуренция:(Ниско, средно, високо) Това ви казва колко хора се опитват да въведат ключова дума за тази дума или фраза. Колкото по-висока е конкуренцията, толкова по-трудно е да се класирате високо в Google за тази дума за търсене.
Глобален месечен обем: Колко търсения се правят на месец в световен мащаб за този термин.
Месечен месец:Определя се от информацията, която въвеждате в търсенето си. Ако сте посочили местоположението си като САЩ тогава това ще бъде броят на месечните търсения на този термин в САЩ.
Въпреки че този инструмент е лесен за използване, всички ключови думи не се третират еднакво. Всъщност някои ключови думи ви носят повече трафик от други, а някои могат да ви донесат много трафик, който никога не преобразува. Ето защо силно препоръчваме на собствениците на фирми да наемат агенция, която е обучена в SEO и ключови думи, за да им помогне с техния интернет маркетинг.
Колко ключови думи трябва да добавя на страница?
След като сте провели проучването на ключовите си думи, ще трябва да изберете една ключова думаза всяка страница или блог на вашия уебсайт. Ключовите думи трябва да са специфични за темата на страницата и да са свързани с цялостната тема на вашия уебсайт.
Пример за добър избор на ключова дума:
Основна тема на уебсайта:Поничка
Страница на уебсайта:Кленова поничка
Присвоена ключова дума:Най-добра кленова поничка
Пример за лош избор на ключова дума:
Основна тема на уебсайта:Поничка
Страница на уебсайта:Кленова поничка
Присвоена ключова дума:Рецепти за понички
Как да добавите ключови думи към страницата на вашия уебсайт:
Когато добавяте ключови думи към уебсайта си, важно е да включите ключовата си дума на 6 места на всяка страница от уебсайта си. Включването на вашата ключова дума в тези 6 области ще помогне на търсачките да идентифицират темата на вашата страница и да я класират в резултатите от търсенето.
- Заглавие на страница
- Мета Описание
- Заглавка
- Подзаглавие
- Основни параграфи
- Алтернативни етикети на изображението
Заглавие на страницата и мета описание:
Заглавията на страниците и мета описанията са по-техническа част от ключовите думи на вашия уебсайт. Въпреки това е важно да осъзнаете колко ценни могат да бъдат те за вашите интернет маркетингови усилия. Какво представляват заглавията на страниците и мета описанията? Тези части от страницата на вашия уебсайт всъщност се показват в резултатите от търсенето, те са първото впечатление, което търсещият получава от страницата на вашия уебсайт.
Ако нямате достъп до заглавията на страниците на вашия уебсайт или мета описанията, тогава ще бъде важно да се консултирате с компанията за управление на вашия уебсайт дали тези области са попълнени правилно за SEO.
Заглавки:
Заглавките много приличат на билбордове за търсачките. Те са един от най-добрите начини да покажете на търсачките каква е основната тема на вашата страница. Важно е да включите цялата си ключова дума в заглавката.
Подзаглавки:
Подзаглавките са друга област, която казва на търсачките за какво искате да бъде намерена страницата на уебсайта. Мислете за тази област като за недвижими имоти, ако не се опитате да включите ключовите си думи в подзаглавието, тогава пропускате.
Основен параграф:
Когато пишете основното съдържание за страницата на уебсайта си, трябва да се опитате да включите вашата ключова дума или поне части от нея. Не забравяйте да поддържате писането си естествено, търсачките всъщност ще ви накажат, ако писането ви препълва ключови думи и изглежда неестествено. Когато за първи път се опитате да пишете с ключови думи, може да ви е трудно, но продължавайте да практикувате! Наистина става по-лесно и ще станете по-добри в оформянето на съдържанието си за добавяне на ключови думи.
Алтернативни етикети на изображението:
Изображенията са чудесно допълнение към всяка уеб страница, всъщност те дори могат да помогнат на търсачките да ви класират. Alt таговете са по същество етикет, който присвоявате на вашето изображение, така че търсачките да могат да го прочетат. Ако не използвате Alt тагове за изображения, търсачките няма да го видят. Чрез ключови думи за тези изображения Alt Tags вие казвате на търсачките „Използвах снимка и тя е свързана с темата на страницата ми“.
Ето го, сега знаете основите за това как да добавяте ключови думи към уебсайт. Знаем, че изглежда обезсърчително, но ако имате време да пишете свои собствени блогове или съдържание на уебсайтове, горещо ви препоръчваме да използвате някои от съветите, изброени по-горе. Тези тактики могат да ви донесат повече трафик към уебсайта ви и да ви помогнат да квалифицирате възможните клиенти на уебсайта си. Това означава без излишни посещения и повече клиенти за вашия бизнес.
Ако все пак сте намерили тази статия за полезна, моля, „споделете“ я с приятел.
Вече няколко пъти ме помолиха да напиша статия за как да внедрите търсене в уебсайт с помощта на PHP. Това не е лесна задача, дори бих казал много трудна, тъй като има огромен брой нюанси и препятствия. В тази статия ще анализирам алгоритъм за търсене в сайта.
Да приемем, че нашият уебсайт има много различни материали (статии, новини, бележки и т.н.). Всички тези неща са в базата данни. И нашата задача е прилагане на търсене в сайта. Най-простият алгоритъм е следният:
- Създавайте HTML формас лента за търсене, както и бутон " Изпращане". Потребителите ще въведат заявка за търсене в текстовото поле и след това ще кликнат върху бутона.
- Вземете заявката за търсене (обикновено се предава от метода ВЗЕМЕТЕ, но понякога използват и ПУБЛИКУВАНЕ), а също и за защита срещу XSS, прекарайте го през функцията htmlspecialchars().
- Направете избор от съответните таблици (със статии, новини, бележки и т.н.) на тези записи, които съдържат заявката за търсене. Показвам примерна SQL заявка за такива случаи: SELECT * FROM articles WHERE `text_article` LIKE %search% Съответно, вместо Търсененизът за търсене се замества.
- След като получим записите, ние ги показваме в необходимата форма, за предпочитане по уместност. Например, направих това на моя уебсайт: там, където има най-много съвпадения, тази статия е по-подходяща, следователно я поставям на първо място. Най-вероятно този метод за оценка на уместността също ще ви подхожда.
Много от вас ще кажат, че тук няма нищо сложно. И те ще бъдат отчасти прави, но нека да разгледаме този пример за низ за търсене: " Търся този текст". Възниква въпросът: " Какво точно търсите?". Или се търси точното появяване на текста" Търся този текст". Или може би се търси текст, в който присъстват и трите думи, но които може да не следват една след друга. Или може би се търси текст, в който присъства поне една от тези думи.
И тук задачата значително се усложнява. Можете да създадете сложна синтактична система (както в търсачките), например, търси се точно срещане, ако заявката е посочена в кавички. И можете да дадете на потребителите избор как точно искат да извършат търсенето (с помощта на радио бутони). Ето как беше направено на моя уебсайт. Следователно към предишния алгоритъм се добавя още една точка: компилиране на SQL заявка. Ето пример за SQL заявка, когато трябва да извадите всички материали, които съдържат поне една дума от заявката " Търся този текст":
ИЗБЕРЕТЕ * ОТ статии WHERE (`text_article` КАТО "%търся%" ИЛИ `text_article` КАТО "%this%" ИЛИ `text_article` КАТО "%text%")
Съответно в скрипта за търсене трябва да генерирате подобни SQL заявки, изпрати до базата данни, получи отговор и го изведе. Това става още по-сложно, ако показвате публикации по уместност, тъй като е трудно да се каже веднага кое трябва да е по-уместно: 3 точните случаи на заявката, или 10 появявания на частите на заявката. На моя сайт винаги се дава предпочитание на точните срещания, но тази точка вече е доста спорна. Разбира се, това е трудно и ако правите това за първи път, определено ще прекарате няколко часа. Надявам се моята алгоритъм за реализиране на търсене в уебсайт чрез PHPЩе ви помогне.