Додому Порожнину рота Сервіси для пошуку ключових слів. Покращуємо релевантність пошуку в sphinxsearch Вяхир search php keywords

Сервіси для пошуку ключових слів. Покращуємо релевантність пошуку в sphinxsearch Вяхир search php keywords

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 як добре.

    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.

  • Чи є ти інший метод/технологія ви може recommend to 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 read

Search 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: «…може враховуватись при визначенні відповідності сторінки пошуковим запитам».

Звернемо увагу, що ключове слово тут може. Адже можезовсім не означає враховується.

Google

Система не залишає жодних сумнівів і не дає ґрунту для роздумів. Тут все лаконічно та ясно: "У нас не буде використовувати ключові слова meta-tag в search-ranking", "Google не усвідомлює ключові слова meta tag для років і поточно ми не потребуємо змінити те, що політика".

"Ми не використовуємо метатег keywords у пошуковому ранжируванні", "Google ігнорує метатег keywords протягом багатьох років, і в даний час немає необхідності змінювати цю політику".

Rambler, Yahoo, Mail.ru

Поділяють думку Гугла і вважають, що метатег ключовихслів вичерпав себе. Тому зовсім не враховується цими пошуковими системами.

Але чому багато хто, як і раніше, використовують keywords?

Швидше за все це пов'язано з неоднозначним формулюванням Яндекса про тег. Логіка власників сайтів така: якщо є надія, що Яндекс врахує тег, а Google, Rambler, Yahoo і Mail.ru ставляться до метатегу нейтрально, то від його заповнення гірше не стане.

А як стане?

Серед оптимізаторів існує думка, що заповнення тега keywords може завдати шкоди. Якщо пошукові системи не враховують тег як тег, то текст, вписаний у нього, зчитується як звичайний текст сайту. І якщо ці ключі, ви вже використовували в інших тегах і в тілі тексту, тобто ризик «переспамати» сторінку ключами. Ну а за переспам (надмірну нудоту) можна потрапити під фільтр.

Погляд 1PS

Досі ми описували загальну ситуацію та різні думки щодо питання. У кожного своя думка. Наша полягає в тому, що keywords тег краще не заповнювати. Користі від нього точно немає, а ось ризик потрапити під фільтр все ж таки є.

Краще просувати сайт за рахунок правильного контенту, тегів , <H>, <alt>та інших способів технічної оптимізації. До речі, більшість цих прийомів враховано в послузі Пошукове Просування .</p> <p>P.S. Успіхів вам у просуванні свого ресурсу.</p> <p>На жаль, безліч клієнтів зі своїми інтернет-маркетингом і веб-сайтами, і одне питання для того, щоб отримати це “How do you add keywords to a website?” Ви маєте зображення за допомогою надзвичайно складних формул і кодів в комп'ютері.</p> <p>Але truth is the basics are easier than you might think. У вас є тільки наші клієнти, які керують своїми основними домашніми blogs як ключові слова їхніх веб-сторінок, які вони можуть бути зроблені на search engines easier. Результат цього blog article є для тебе, щоб мати багато важливих речей про те, як додати ключові слова до веб-сайту. Чи не потрібна вам, щоб вийти в час?</p> <h2>Why Should You Know How to Додати Keywords to a Website?</h2> <p>Щоб дізнатися, як додати ключові слова до веб-сайту ви будете здатні до ключових слів ваших нових blogs, веб-сторінок, і інших інтернет-маркетингу матеріалів. Ви будете мати загальний контекст для того, що SEO є дуже важливою для вашого бізнесу.</p> <h3>How Can Adding Keywords to My Website Help My Business?</h3> <p>Adding keywords to your website helps search engines understand what your website can offer someone searching, and ultimately bring you more qualified traffic. How? З ідентифікаторами, як ключові слова. <b>Без ключових слів на веб-сторінках сайтів не є способом для пошуку знарядь до категорії свій веб-сайт і показує його в правих людях</b>.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.</p> <p>Добре зроблені веб-сайти мають основний предмет, а також мають subкатегорії, що полягають в основному предметі, і через клавіатуру всіх цих областей будуть здатні до реального зображення в search engines, і люди searching можуть бути виконані якомога більше. . For example:</p> <p><b>Your Main Subject Might Be:</b> Doughnuts</p> <p><b>Your Sub-Categories or Topics Could Be:</b> Cake, Dougnut Holes, Bars,…</p> <h4>Choosing Keywords for Your Website</h4> <p>Тепер, що ви підтримуєте кадр роботи з сайту і як його 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:</p> <p><b>Competition:</b>(Low, Med, High) Цей текст ви знаєте, що багато людей є словом для того, щоб слово або слово. Підвищення конкуренції більше різновидів, що є на рівні високої в Google для того, щоб знайти територію.</p> <p><b>Global Monthly Volume:</b> </span>Як багато searches є зроблені протягом місяців Global for that term.</p> <p><b>Local Monthly:</b>Він визначається за інформацією про те, щоб йти в свій пошук. Якщо ви визначили вашу місцевість як U.S. буде це число послідовних досліджень для того, що термін в США.</p> <p>При цьому інструменті є зручним для використання, всі ключові слова не можуть подолати самих. У факті деяких ключових слів, що ви робите більше, ніж інші, і деякі місії, що ви маєте багато транспорту, що невідомі. Це why we highly recommend business owners hiring agency that is educated в SEO і клавіатури, щоб допомогти їм з своїм інтернет-маркетингу.</p> <h3>How Many Keywords До Я потрібна до Add Per Page?</h3> <p>Після того, як ви думаєте про вашу ключову клавіатуру, ви будете потрібні для навчання. <b>one keyword</b>для всіх наших веб-сторінок або blogs. Keywords повинні бути конкретними на сторінці карти і відношення до вашого overall website subject.</p> <p><b>Example of Good Keyword Choice:</b></p> <p><i>Main Website Theme:</i> Donut</p> <p><i>Website Page:</i> Maple Donut</p> <p><i>Assigned Keyword:</i> Best Maple Donut</p> <p><b>Example of Bad Keyword Choice:</b></p> <p><i>Main Website Theme:</i> Donut</p> <p><i>Website Page:</i> Maple Donut</p> <p><i>Assigned Keyword:</i> Donut recipes</p> <h3>How to Add Keywords to Your Website Page:</h3> <p>Якщо adwords keywords до свого веб-сайту, це є важливим для включення вашого ключового слова в 6 місць на одній сторінці вашого веб-сайту. Включення вашого ключового слова в ці шість регіонів буде help search engines identify the subject of your page and rank your page in search results.</p> <ol><li>Page Title</li> <li>Meta Description</li> <li>Header</li> <li>Sub Header</li> <li>Body Paragraphs</li> <li>Image Alt Tags</li> </ol><p><b>Page Title & Meta Description:</b></p> <p>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 з нашої веб-сторінки.</p> <p><img src='https://i0.wp.com/blog.halfabubbleout.com/hs-fs/hub/215313/file-29901144-png/blog-images/search-example-resized-600.png' align="Center" width="100%" loading=lazy loading=lazy></p> <p>Якщо ви не маєте доступу до вашого веб-сайту Сторінки або Meta Descriptions будуть для нього важливими для перевірки з вашим веб-сайтом управління компанією, що ці області є пов'язані з SEO.</p> <p><b>Headers:</b></p> <p>Headers є багато як billboards для search engines. Вони є одним з найбільших способів до показу технічних знань, які ваші основні предмети є для вашої сторінки. Це важливе, що ви включаєте вашу клавішу клавіші в вашому стилі.</p> <p><b>Sub-Headers:</b></p> <p>Sub-headers є ще одна область для пошуку технічних знарядь, які ви хочете, щоб веб-сторінка до be found for. Така територія як справжня держава, якщо ви не намагаєтеся включити ваші ключові слова в sub-header, ви збираєтеся.</p> <p><b>Body Paragraph:</b></p> <p>Якщо писати вміст вмісту для вашого веб-сайту, ви повинні намагатися включати ваше слово, або на великі частини з вашого ключового слова. Remember to keep your writing natural, search engines will actually penalize you if your writing over stuffs keywords and appears unnatural. Коли ви першим намагаєтеся отримати з ключовими словами ви можете знайти його, але помилки практикують! Це справді ви можете отримати easier, і ви будете отримати під час перегляду свого вмісту для пошуку ключових слів.</p> <p><b>Image Alt Tags:</b></p> <p>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 "Я використовую зображення і його позначки до предмета моєї сторінки."</p> <p>Там, що ви знаєте, тепер ви знаєте, як принципи, як довести ключові слова до веб-сайту. Ми знаємо, що вони дають, але якщо ви маєте час, щоб отримати свій новий blogs або веб-сайту вмісту, вони будуть високо recommend, і ви можете використовувати деякі типи. Ці tactics можуть bring you more traffic до вашого веб-сайту, і help qualify your website leads. Що засобами не були відвідувані відвідувачі і багато customers for your business.</p> <p><i>Якщо ви знайдете цей article helpful in anyway please 'share' it with a friend.</i></p></p> <p>У мене вже кілька разів просили написати статтю про те, <b>як реалізувати пошук на сайті через PHP</b>. Завдання це непросте, я навіть сказав - дуже непросте, оскільки тут є величезна кількість нюансів і перешкод. У цій статті я розберу <b>алгоритм пошуку на сайті</b>.</p> <p>Припустимо, що на нашому сайті є безліч різних матеріалів (статей, новин, нотаток та іншого). Все це добро знаходиться у базі даних. І наше завдання - <b>реалізувати пошук на сайті</b>. Найпростіший алгоритм наступний:</p> <ol><li>Створити <b>HTML-форму</b>з рядком пошуку, а також кнопкою " <b>Submit</b>У текстове поле користувачі вводитимуть пошуковий запит, а далі натискатимуть на кнопку.</li> <li>Отримати пошуковий запит (як правило, що передається методом <b>GET</b>, але іноді застосовують і <b>POST</b>), а також, з метою захисту від <b>XSS</b>пропустити його через функцію <b>htmlspecialchars()</b>.</li> <li>Зробити вибірку з відповідних таблиць (із статтями, новинами, нотатками та іншим) тих записів, у яких міститься пошуковий запит. Показую зразковий SQL-запит для таких випадків: SELECT * FROM articles WHERE `text_article` LIKE %search% Відповідно, замість <b>search</b>підставляється рядок пошуку.</li> <li>Отримавши записи, у потрібному вигляді виводимо їх, бажано, за релевантністю. Я, наприклад, зробив у себе на сайті так: де найбільше збігів - та стаття і релевантніше, отже, ставлю її першою. Швидше за все, Вам цей спосіб оцінки релевантності також підійде.</li> </ol><p>Багато хто з Вас скаже, що нічого складного тут немає. І почасти мають рацію, проте, давайте розберемо такий приклад рядка пошуку: " <b>шукаю цей текст</b>". Постає питання: " <i>А що, власне, шукається?</i>Чи шукається точне входження тексту? <b>шукаю цей текст</b>Або, можливо, шукається текст, де присутні всі три слова, але які можуть слідувати далеко не одне за одним. Або, можливо, шукається текст, де є хоча б одне з цих слів.</p> <p>І тут завдання значно ускладнюється. Можна створити складну систему синтаксису (як у пошукових системах), наприклад, шукається точне входження, якщо запит заданий у лапках. А можна давати вибір користувачам, як вони хочуть проводити пошук (за допомогою radio-кнопок). Таким чином зроблено у мене на сайті. Тому до попереднього алгоритму додається ще один пункт: <b>складання SQL-запит</b>. Ось приклад SQL-запиту, коли потрібно витягнути всі матеріали, у яких є хоча одне слово із запиту " <b>шукаю цей текст</b>":</p><p>SELECT * FROM articles WHERE (`text_article` LIKE "%шукаю%" OR `text_article` LIKE "%цей%" OR `text_article` LIKE "%текст%")</p><p>Відповідно, у скрипті пошуку Ви повинні генерувати подібні <b>SQL-запити</b>, посилати до бази даних, отримувати відповідь та виводити її. Це все ще більше ускладнюється, якщо Ви виводите записи з релевантності, тому що важко відразу сказати, що має бути релевантніше: <b>3 </b>точних входження запиту, або <b>10 </b>входжень частин запиту. У мене на сайті перевага завжди віддається точним входженням, але цей момент вже досить спірний. Безумовно, це складно, і якщо це Ви робите вперше, кілька годин Ви точно витратите. Сподіваюся, що мій <b>алгоритм реалізації пошуку на сайті через PHP</b>Вам допоможе.</p> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> </div> </article> <script> var block_td_uid_7_5a5dcf40018b6 = new tdBlock(); block_td_uid_7_5a5dcf40018b6.id = "td_uid_7_5a5dcf40018b6"; block_td_uid_7_5a5dcf40018b6.atts = '{ "limit":3,"sort":"","post_ids":"","tag_slug":"","autors_id":"","installed_post_types":"","category_id":"","category_ids":"","custom_title":"","custom_url":"","show_child_cat":"","sub_cat_ajax":"","ajax_pagination":"next_prev","header_color":"","header_text_color":"","ajax_pagination_infinite_stop":"","td_column_number":3,"td_ajax_preloading":"","td_ajax_filter_type":"td_custom_related","td_ajax_filter_ids":"","td_filter_default_txt":"\u0412\u0441\u0435","color_preset":"","border_top":"","class":"td_uid_7_5a5dcf40018b6_rand","el_class":"","offset":"","css":"","live_filter":"cur_post_same_categories","live_filter_cur_post_id":1538,"live_filter_cur_post_author":"5"} '; block_td_uid_7_5a5dcf40018b6.td_column_number = "3"; block_td_uid_7_5a5dcf40018b6.block_type = "td_block_related_posts"; block_td_uid_7_5a5dcf40018b6.post_count = "3"; block_td_uid_7_5a5dcf40018b6.found_posts = "67"; block_td_uid_7_5a5dcf40018b6.header_color = ""; block_td_uid_7_5a5dcf40018b6.ajax_pagination_infinite_stop = ""; block_td_uid_7_5a5dcf40018b6.max_num_pages = "23"; tdBlocksArray.push(block_td_uid_7_5a5dcf40018b6); </script> <div class="td_block_wrap td_block_related_posts td_uid_7_5a5dcf40018b6_rand td_with_ajax_pagination td-pb-border-top" data-td-block-uid="td_uid_7_5a5dcf40018b6"> <div id=td_uid_7_5a5dcf40018b6 class="td_block_inner"> <div class="td-related-row"> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://stomatp22.ru/uk/50-psalom-carya-davida-obyasneniya-cerkovnyh-i-domashnih-molitv-tolkovanie.html" rel="bookmark" title="Пояснення церковних та домашніх молитов"><img width="238" height="178" class="entry-thumb" src="/uploads/7f139d9d952dc53e20f8159a9a8cf9b5.jpg" sizes="(max-width: 238px) 100vw, 238px" alt="Пояснення церковних та домашніх молитов" title="Пояснення церковних та домашніх молитов"/ loading=lazy loading=lazy></a></div> <a href="https://stomatp22.ru/uk/category/pulpitis/" class="td-post-category">Пульпіт</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://stomatp22.ru/uk/50-psalom-carya-davida-obyasneniya-cerkovnyh-i-domashnih-molitv-tolkovanie.html" rel="bookmark" title="Пояснення церковних та домашніх молитов">Пояснення церковних та домашніх молитов</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://stomatp22.ru/uk/tolkovanie-evangeliya-ot-matfeya-10-glava-bolshaya-hristianskaya-biblioteka.html" rel="bookmark" title="Велика християнська бібліотека"><img width="238" height="178" class="entry-thumb" src="/uploads/4004759e93cae1ae92ad3f2945e58fe4.jpg" sizes="(max-width: 238px) 100vw, 238px" alt="Велика християнська бібліотека" title="Велика християнська бібліотека"/ loading=lazy loading=lazy></a></div> <a href="https://stomatp22.ru/uk/category/pulpitis/" class="td-post-category">Пульпіт</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://stomatp22.ru/uk/tolkovanie-evangeliya-ot-matfeya-10-glava-bolshaya-hristianskaya-biblioteka.html" rel="bookmark" title="Велика християнська бібліотека">Велика християнська бібліотека</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://stomatp22.ru/uk/obnaruzhili-staruyu-obgorevshuyu-cerkovnuyu-svechu-magiya-cerkovnoi-svechi-s-chem.html" rel="bookmark" title="Виявили стару обгорілу церковну свічку"><img width="238" height="178" class="entry-thumb" src="/uploads/c7ecb86945ab20eabb1edc34b767d70d.jpg" sizes="(max-width: 238px) 100vw, 238px" alt="Виявили стару обгорілу церковну свічку" title="Виявили стару обгорілу церковну свічку"/ loading=lazy loading=lazy></a></div> <a href="https://stomatp22.ru/uk/category/orthopedics/" class="td-post-category">Ортопедія</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://stomatp22.ru/uk/obnaruzhili-staruyu-obgorevshuyu-cerkovnuyu-svechu-magiya-cerkovnoi-svechi-s-chem.html" rel="bookmark" title="Виявили стару обгорілу церковну свічку">Виявили стару обгорілу церковну свічку</a></h3> </div> </div> </div> </div> </div> <div class="td-next-prev-wrap"><a href="#" class="td-ajax-prev-page ajax-page-disabled" id="prev-page-td_uid_7_5a5dcf40018b6" data-td_block_id="td_uid_7_5a5dcf40018b6"><i class="td-icon-font td-icon-menu-left"></i></a><a href="#" class="td-ajax-next-page" id="next-page-td_uid_7_5a5dcf40018b6" data-td_block_id="td_uid_7_5a5dcf40018b6"><i class="td-icon-font td-icon-menu-right"></i></a></div> </div> </div> </div> <div class="td-pb-span4 td-main-sidebar"> <div class="td-ss-main-sidebar"> <div class="td_block_wrap td_block_9 td_block_widget td_uid_12_5a5dcf7cac471_rand td-pb-border-top" data-td-block-uid="td_uid_12_5a5dcf7cac471"> <style scoped> .td_uid_12_5a5dcf7cac471_rand .td_module_wrap:hover .entry-title a, .td_uid_12_5a5dcf7cac471_rand .td-load-more-wrap a:hover, .td_uid_12_5a5dcf7cac471_rand .td_quote_on_blocks, .td_uid_12_5a5dcf7cac471_rand .td-wrapper-pulldown-filter .td-pulldown-filter-display-option:hover, .td_uid_12_5a5dcf7cac471_rand .td-wrapper-pulldown-filter a.td-pulldown-filter-link:hover, .td_uid_12_5a5dcf7cac471_rand .td-instagram-user a { color: #1360a1; } .td_uid_12_5a5dcf7cac471_rand .td-next-prev-wrap a:hover i { background-color: #1360a1; border-color: #1360a1; } .td_uid_12_5a5dcf7cac471_rand .td_module_wrap .td-post-category:hover, .td_uid_12_5a5dcf7cac471_rand .td-trending-now-title, .td_uid_12_5a5dcf7cac471_rand .block-title span, .td_uid_12_5a5dcf7cac471_rand .td-weather-information:before, .td_uid_12_5a5dcf7cac471_rand .td-weather-week:before, .td_uid_12_5a5dcf7cac471_rand .td-exchange-header:before, .td_uid_12_5a5dcf7cac471_rand .block-title a { background-color: #1360a1; } .td_uid_12_5a5dcf7cac471_rand .td-trending-now-title, .td_uid_12_5a5dcf7cac471_rand .block-title span, .td_uid_12_5a5dcf7cac471_rand .block-title a { color: #fff; } </style> <h4 class="block-title"><span>Нове на сайті</span></h4> <div id=td_uid_12_5a5dcf7cac471 class="td_block_inner"> <div class="td-block-span12"> <div class="td_module_8 td_module_wrap"> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://stomatp22.ru/uk/razrushenie-otnoshenii-runami-silnyi-runicheskii-otvorot.html" rel="bookmark" title="Сильний рунічний відворот Руни на руйнування відносин із суперницею">Сильний рунічний відворот Руни на руйнування відносин із суперницею</a></h3> <div class="meta-info"> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_8 td_module_wrap"> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://stomatp22.ru/uk/ssora-v-29-lunnyi-den-lunnyi-den-rozhdeniya-harakteristika-teh-kto.html" rel="bookmark" title="Сварка на 29 місячний день. Місячний день народження. Характеристика тих, хто народився у двадцять дев'ятий місячний день">Сварка на 29 місячний день. Місячний день народження. Характеристика тих, хто народився у двадцять дев'ятий місячний день</a></h3> <div class="meta-info"> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_8 td_module_wrap"> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://stomatp22.ru/uk/skolko-budet-nahoditsya-moshchi-nikolaya-chudotvorca-moshchi-svyatitelya-nikolaya.html" rel="bookmark" title="Мощі святителя Миколая чудотворця">Мощі святителя Миколая чудотворця</a></h3> <div class="meta-info"> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_8 td_module_wrap"> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://stomatp22.ru/uk/chto-nuzhno-govorit-vo-vremya-china-proshcheniya-liturgika-uchebnoe.html" rel="bookmark" title="Що потрібно говорити під час чину прощення">Що потрібно говорити під час чину прощення</a></h3> <div class="meta-info"> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_8 td_module_wrap"> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://stomatp22.ru/uk/sobor-arhistratiga-mihaila-i-prochih-nebesnyh-sil-besplotnyh.html" rel="bookmark" title="Що таке херувім">Що таке херувім</a></h3> <div class="meta-info"> </div> </div> </div> </div> </div> </div> <div class="td_block_wrap td_block_8 td_block_widget td_uid_19_5a5dcf7cb72c3_rand td-pb-border-top" data-td-block-uid="td_uid_19_5a5dcf7cb72c3"> <style scoped> .td_uid_19_5a5dcf7cb72c3_rand .td_module_wrap:hover .entry-title a, .td_uid_19_5a5dcf7cb72c3_rand .td-load-more-wrap a:hover, .td_uid_19_5a5dcf7cb72c3_rand .td_quote_on_blocks, .td_uid_19_5a5dcf7cb72c3_rand .td-wrapper-pulldown-filter .td-pulldown-filter-display-option:hover, .td_uid_19_5a5dcf7cb72c3_rand .td-wrapper-pulldown-filter a.td-pulldown-filter-link:hover, .td_uid_19_5a5dcf7cb72c3_rand .td-instagram-user a { color: #1360a1; } .td_uid_19_5a5dcf7cb72c3_rand .td-next-prev-wrap a:hover i { background-color: #1360a1; border-color: #1360a1; } .td_uid_19_5a5dcf7cb72c3_rand .td_module_wrap .td-post-category:hover, .td_uid_19_5a5dcf7cb72c3_rand .td-trending-now-title, .td_uid_19_5a5dcf7cb72c3_rand .block-title span, .td_uid_19_5a5dcf7cb72c3_rand .td-weather-information:before, .td_uid_19_5a5dcf7cb72c3_rand .td-weather-week:before, .td_uid_19_5a5dcf7cb72c3_rand .td-exchange-header:before, .td_uid_19_5a5dcf7cb72c3_rand .block-title a { background-color: #1360a1; } .td_uid_19_5a5dcf7cb72c3_rand .td-trending-now-title, .td_uid_19_5a5dcf7cb72c3_rand .block-title span, .td_uid_19_5a5dcf7cb72c3_rand .block-title a { color: #fff; } </style> > <h4 class="block-title"><span>Найпопулярніше</span></h4> <div id=td_uid_19_5a5dcf7cb72c3 class="td_block_inner"> <div class="td-block-span12"> <div class="td_module_7 td_module_wrap td-animation-stack"> <div class="td-module-thumb"><a href="https://stomatp22.ru/uk/prepodobnyi-lev-optinskii-uchenie-o-vechnoi-zhizni-prepodobnyi-lev-optinskii.html" rel="bookmark" title="Преподобний лев, оптинський"><img width="100" height="75" class="entry-thumb" src="/uploads/f4f9b3cd10ca433533f7f6ea21d8d22a.jpg" sizes="(max-width: 100px) 100vw, 100px" alt="Преподобний лев, оптинський" title="Преподобний лев, оптинський"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://stomatp22.ru/uk/prepodobnyi-lev-optinskii-uchenie-o-vechnoi-zhizni-prepodobnyi-lev-optinskii.html" rel="bookmark" title="Преподобний лев, оптинський">Преподобний лев, оптинський</a></h3> <div class="meta-info"> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_7 td_module_wrap td-animation-stack"> <div class="td-module-thumb"><a href="https://stomatp22.ru/uk/michurinskaya-i-morshanskaya-rozhdestvenskoe-poslanie-episkopa.html" rel="bookmark" title="Різдвяне послання єпископа мічуринського та моршанського гермогена"><img width="100" height="75" class="entry-thumb" src="/uploads/1aac6d082d52f2967e34125090b7f838.jpg" sizes="(max-width: 100px) 100vw, 100px" alt="Різдвяне послання єпископа мічуринського та моршанського гермогена" title="Різдвяне послання єпископа мічуринського та моршанського гермогена"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://stomatp22.ru/uk/michurinskaya-i-morshanskaya-rozhdestvenskoe-poslanie-episkopa.html" rel="bookmark" title="Різдвяне послання єпископа мічуринського та моршанського гермогена">Різдвяне послання єпископа мічуринського та моршанського гермогена</a></h3> <div class="meta-info"> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_7 td_module_wrap td-animation-stack"> <div class="td-module-thumb"><a href="https://stomatp22.ru/uk/arhimandrit-ieronim-arhimandrit-ieronim-shurygin-molyus-chtoby-gospod.html" rel="bookmark" title="Архімандрит Ієронім (Шуригін): «Молюсь, щоб Господь дарував мені любов Ієронім шуригін біографія"><img width="100" height="75" class="entry-thumb" src="/uploads/7cd4af1f004d6e18275561b7f89830e2.jpg" sizes="(max-width: 100px) 100vw, 100px" alt="Архімандрит Ієронім (Шуригін): «Молюсь, щоб Господь дарував мені любов Ієронім шуригін біографія" title="Архімандрит Ієронім (Шуригін): «Молюсь, щоб Господь дарував мені любов Ієронім шуригін біографія"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://stomatp22.ru/uk/arhimandrit-ieronim-arhimandrit-ieronim-shurygin-molyus-chtoby-gospod.html" rel="bookmark" title="Архімандрит Ієронім (Шуригін): «Молюсь, щоб Господь дарував мені любов Ієронім шуригін біографія">Архімандрит Ієронім (Шуригін): «Молюсь, щоб Господь дарував мені любов Ієронім шуригін біографія</a></h3> <div class="meta-info"> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_7 td_module_wrap td-animation-stack"> <div class="td-module-thumb"><a href="https://stomatp22.ru/uk/kvest-dlya-detei-na-ulice---komandnaya-igra-s-poiskom-spryatannogo-syurpriza-vo.html" rel="bookmark" title="Цікаві завдання для квестів"><img width="100" height="75" class="entry-thumb" src="/uploads/195a4d499d299b69ea9dd2f5bac1bb03.jpg" sizes="(max-width: 100px) 100vw, 100px" alt="Цікаві завдання для квестів" title="Цікаві завдання для квестів"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://stomatp22.ru/uk/kvest-dlya-detei-na-ulice---komandnaya-igra-s-poiskom-spryatannogo-syurpriza-vo.html" rel="bookmark" title="Цікаві завдання для квестів">Цікаві завдання для квестів</a></h3> <div class="meta-info"> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_7 td_module_wrap td-animation-stack"> <div class="td-module-thumb"><a href="https://stomatp22.ru/uk/zarubezhnye-skazochniki-zarubezhnye-skazochniki-skazki-i-rasskazy-zarubezhnyh.html" rel="bookmark" title="Зарубіжні казкарі Казки та оповідання зарубіжних письменників"><img width="100" height="75" class="entry-thumb" src="/uploads/2cf884bfa4ee2db9a05a77fe93f5be8f.jpg" sizes="(max-width: 100px) 100vw, 100px" alt="Зарубіжні казкарі Казки та оповідання зарубіжних письменників" title="Зарубіжні казкарі Казки та оповідання зарубіжних письменників"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://stomatp22.ru/uk/zarubezhnye-skazochniki-zarubezhnye-skazochniki-skazki-i-rasskazy-zarubezhnyh.html" rel="bookmark" title="Зарубіжні казкарі Казки та оповідання зарубіжних письменників">Зарубіжні казкарі Казки та оповідання зарубіжних письменників</a></h3> <div class="meta-info"> </div> </div> </div> </div> </div> </div> <div class="td-a-rec td-a-rec-id-sidebar " align="center"> <div id="galyze2" style="height:500px;width:300px;" align="center"></div> </div> </div> </div> </div> </div> </div> <div class="td-footer-container td-container"> <div class="td-pb-row"> <div class="td-pb-span12"> </div> </div> <div class="td-pb-row"> <div class="td-pb-span4"> <div class="td-footer-info td-pb-padding-side"><div class="footer-logo-wrap"><a href="https://stomatp22.ru/uk/"></a></div><div class="footer-text-wrap">© 2023. Портал стоматологічних консультацій.</div><div class="footer-social-wrap td-social-style2"> <span class="td-social-icon-wrap"> <a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://stomatp22.ru/servisy-dlya-poiska-klyuchevyh-slov-uluchshaem-relevantnost-poiska-v-sphinxsearch.html" title="Facebook"> <i class="td-icon-font td-icon-facebook"></i> </a> </span> <span class="td-social-icon-wrap"> <a target="_blank" href="" title="Instagram"> <i class="td-icon-font td-icon-instagram"></i> </a> </span> <span class="td-social-icon-wrap"> <a target="_blank" href="https://vk.com/share.php?url=https://stomatp22.ru/servisy-dlya-poiska-klyuchevyh-slov-uluchshaem-relevantnost-poiska-v-sphinxsearch.html" title="VKontakte"> <i class="td-icon-font td-icon-vk"></i> </a> </span></div></div> </div> <div class="td-pb-span4"> <div class="td_block_wrap td_block_popular_categories td_block_widget td_uid_22_5a5dcf7cbb072_rand widget widget_categories td-pb-border-top" data-td-block-uid="td_uid_22_5a5dcf7cbb072" > <style scoped> .td_uid_22_5a5dcf7cbb072_rand .td_module_wrap:hover .entry-title a, .td_uid_22_5a5dcf7cbb072_rand .td-load-more-wrap a:hover, .td_uid_22_5a5dcf7cbb072_rand .td_quote_on_blocks, .td_uid_22_5a5dcf7cbb072_rand .td-wrapper-pulldown-filter .td-pulldown-filter-display-option:hover, .td_uid_22_5a5dcf7cbb072_rand .td-wrapper-pulldown-filter a.td-pulldown-filter-link:hover, .td_uid_22_5a5dcf7cbb072_rand .td-instagram-user a { color: #ffffff; } .td_uid_22_5a5dcf7cbb072_rand .td-next-prev-wrap a:hover i { background-color: #ffffff; border-color: #ffffff; } .td_uid_22_5a5dcf7cbb072_rand .td_module_wrap .td-post-category:hover, .td_uid_22_5a5dcf7cbb072_rand .td-trending-now-title, .td_uid_22_5a5dcf7cbb072_rand .block-title span, .td_uid_22_5a5dcf7cbb072_rand .td-weather-information:before, .td_uid_22_5a5dcf7cbb072_rand .td-weather-week:before, .td_uid_22_5a5dcf7cbb072_rand .td-exchange-header:before, .td_uid_22_5a5dcf7cbb072_rand .block-title a { background-color: #ffffff; } .td_uid_22_5a5dcf7cbb072_rand .td-trending-now-title, .td_uid_22_5a5dcf7cbb072_rand .block-title span, .td_uid_22_5a5dcf7cbb072_rand .block-title a { color: #222222; } </style><h4 class="block-title"><span>ПОПУЛЯРНІ РОЗДІЛИ</span></h4><ul class="td-pb-padding-side"> <li><a href="https://stomatp22.ru/uk/category/orthopedics/">Ортопедія</a></li> <li><a href="https://stomatp22.ru/uk/category/tongue-coating/">Наліт мовою</a></li> <li><a href="https://stomatp22.ru/uk/category/breath/">Запах із рота</a></li> <li><a href="https://stomatp22.ru/uk/category/wisdom-teeth/">Зуби мудрості</a></li> <li><a href="https://stomatp22.ru/uk/category/gums/">Десни</a></li> <li><a href="https://stomatp22.ru/uk/category/stomatitis/">Стоматит</a></li> <li><a href="https://stomatp22.ru/uk/category/removal/">Вилучення</a></li> </ul></div> </div> <div class="td-pb-span4"> <aside class="widget woocommerce widget_product_categories"><div class="block-title"><span>Останні статті</span></div><ul class="product-categories"> <li class="cat-item cat-item-434"><a href="https://stomatp22.ru/uk/podgotovka-k-sochineniyu-opisaniyu-peizazhnaya-zarisovka.html">Підготовка до написання-описання</a></li> <li class="cat-item cat-item-434"><a href="https://stomatp22.ru/uk/analiz-monitoringa-v-srednei-analiz-rezultatov-monitoringa-po-razdelam-programmy-v-srednei-gruppe.html">Аналіз результатів моніторингу за розділами програми у середній групі</a></li> <li class="cat-item cat-item-434"><a href="https://stomatp22.ru/uk/den-pobedy-prazdnichnyi-utrennik-v-starshei-i-podgotovitelnoi-gruppe-den.html">«День Перемоги» Святковий ранок у старшій та підготовчій групі Танець «Безкозирка біла» підготовча група</a></li> <li class="cat-item cat-item-434"><a href="https://stomatp22.ru/uk/samaya-malenkaya-zvezda-vo-vselennoi-naidena-samaya-malenkaya-zvezda-vo.html">Знайдена найменша зірка у всесвіті Гаряча маленька зірка</a></li> <li class="cat-item cat-item-434"><a href="https://stomatp22.ru/uk/opisanie-imeni-darya-taina-i-znachenie-imeni-darya-darya-imya-chto.html">Таємниця та значення імені Дар'я Дарина ім'я що означає</a></li> </ul></aside> </div> </div> </div> </div> </div> <style type="text/css" media="screen"> /* custom css theme panel */ .icons img { display: inline-block; vertical-align: middle; } .menu-item-2892 { background-color: #d12d11; } /*.menu-item-798 { */ /* background-color: #fba52a;*/ /*} */ /*.menu-item-2383 { */ /* background-color: #fffff;*/ /*} */ /*.menu-item-2383 a { */ /* background-color: #000000;*/ /*} */ .woocommerce-loop-product__title { line-height: 18px; } </style> <script type='text/javascript' src='https://stomatp22.ru/wp-content/plugins/bbpress/templates/default/js/editor.js?ver=2.5.14-6684'></script> <script type='text/javascript' src='https://stomatp22.ru/wp-content/plugins/contact-form-7/includes/js/scripts.js?ver=4.9.1'></script> <script type='text/javascript' src='https://stomatp22.ru/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js?ver=2.70'></script> <script type='text/javascript' src='https://stomatp22.ru/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js?ver=2.1.4'></script> <script type='text/javascript' src='https://stomatp22.ru/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js?ver=3.2.5'></script> <script type='text/javascript' src='https://stomatp22.ru/wp-content/plugins/woocommerce/assets/js/frontend/cart-fragments.min.js?ver=3.2.5'></script> <script type='text/javascript' src='https://stomatp22.ru/wp-content/plugins/wp-polls/polls-js.js?ver=2.73.8'></script> <script type='text/javascript' src='https://stomatp22.ru/wp-content/themes/Newsmag/js/tagdiv_theme.js?ver=3.2'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=4.9.1'></script> <script type='text/javascript' src='https://stomatp22.ru/wp-content/plugins/js_composer/assets/js/dist/js_composer_front.min.js?ver=4.12.1'></script> <script> (function() { var html_jquery_obj = jQuery('html'); if (html_jquery_obj.length && (html_jquery_obj.is('.ie8') || html_jquery_obj.is('.ie9'))) { var path = '/wp-content/themes/Newsmag/style.css'; jQuery.get(path, function(data) { var str_split_separator = '#td_css_split_separator'; var arr_splits = data.split(str_split_separator); var arr_length = arr_splits.length; if (arr_length > 1) { var dir_path = '/wp-content/themes/Newsmag'; var splited_css = ''; for (var i = 0; i < arr_length; i++) { if (i > 0) { arr_splits[i] = str_split_separator + ' ' + arr_splits[i]; } //jQuery('head').append('<style>' + arr_splits[i] + '</style>'); var formated_str = arr_splits[i].replace(/\surl\(\'(?!data\:)/gi, function regex_function(str) { return ' url(\'' + dir_path + '/' + str.replace(/url\(\'/gi, '').replace(/^\s+|\s+$/gm, ''); }); splited_css += "<style>" + formated_str + "</style>"; } var td_theme_css = jQuery('link#td-theme-css'); if (td_theme_css.length) { td_theme_css.after(splited_css); } } }); } })(); </script> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> </body> </html>