Миний mysql хүснэгтэд гарчиг (varchar), тайлбар (текст), түлхүүр үг (varchar) талбарууд байна.
Би зөвхөн энэ талбарт хайлт хийнэ гэж бодож байсан тул түлхүүр үгийн талбарыг хадгалсан. Гэхдээ би одоо бүх гурван талбараас хайх шаардлагатай байна. Тиймээс "word1 word2 word3" гэсэн түлхүүр үгсийн хувьд миний асуулга болж байна
myTable-аас * ХААНА ("%word1%" ШИГ нэр ЭСВЭЛ "%word1%" ШИГ тайлбар ЭСВЭЛ "%word1%" ШИГ түлхүүр үг ЭСВЭЛ "%word2%" ШИГ түлхүүр үг ЭСВЭЛ "%word2%" ШИГ тайлбар ЭСВЭЛ "%" ШИГ түлхүүр үгсийг СОНГОХ word2%" ЭСВЭЛ "%word3%" ШИГ нэр ЭСВЭЛ "%word3%" ШИГ тайлбар ЭСВЭЛ "%word3%" ШИГ түлхүүр үгс) БА статус = "амьд"
Бага зэрэг эмх замбараагүй харагдаж байгаа ч энэ нь ажилладаг. Харин одоо би синонимын хайлтыг хэрэгжүүлэх хэрэгтэй байна. тиймээс өгөгдсөн үгэнд цөөн хэдэн ижил утгатай гэж үзвэл би бүх үгийг эргүүлэх тусам энэ асуулга илүү эмх замбараагүй болно. Шаардлагууд улам тодорхой болж байгаа тул би энэ myTable-г бусад хүснэгтэд нэгтгэх шаардлагатай болно.
- Та надад санал болгож чадах өөр арга/техник байна уу?
Дээрх арга замбараагүй бөгөөд өгөгдөл нэмэгдэхийн хэрээр асуудал үүсгэнэ гэж та бодож байна уу?
Дээрх эмх замбараагүй байдлаас хэрхэн зайлсхийх вэ? Надад илүү цэвэрхэн шийдэл байна уу? Ямар ч жишээ надад туслах болно.
ЗАСАХ
@Peter Stuifzand надад нэг хайлтын_индекс хүснэгт үүсгэж, үүн дээр бүх 3 талбарын (гарчиг, түлхүүр үг, буулгалт) мэдээллийг хадгалж, бүрэн текст хайлт хийхийг санал болгосон. Энэ хүснэгтэд нэмэлтээр myTable үндсэн түлхүүрийн лавлагаа оруулах болно гэдгийг би ойлгож байна.
Гэхдээ миний дэвшилтэт хайлтад mytable-д Ангилал хүснэгт, газарзүйн_байршлын хүснэгт (10, 20 милийн дотор хайх гэх мэт), өөр шалгуураар шүүх, хайлтын үр дүнг эрэмбэлэх зэрэг багтаж болно. Mysql бүрэн текст ашиглах нь үүнийг удаашруулахгүй гэж та бодож байна уу?
By Ибрахим Диалло
2014 оны 7-р сарын 2-нд нийтлэгдсэн ~ 16 минут уншсанХайлт нь вэбсайтын чухал функц юм. Миний цөөн хэдэн уншигчид миний блогоос тодорхой хэсгийг хайхыг хүсвэл хайлтын талбарыг ашигладаг. Энэ нь өмнө нь Google хайлтаар ажилладаг байсан ч тэр цагаас хойш би үүнийг илүү сайн хийж чадна гэдгээрээ бус харин сонирхолтой сорилт байсан учраас өөрийн гараар хийсэн хувилбар болгон өөрчилсөн.
Хэрэв та яарч байгаа бол сайтаа хайх боломжтой болгохыг хүсч байвал миний өмнө нь хийж байсан зүйлээ хийгээрэй.
// search.php файлд $term = isset($_GET["query"])?$_GET["query"]: ""; $term = urlencode($term); $вэбсайт = urlencode("www.yourwebsite.com"); $redirect = "https://www.google.com/search?q=site%3A($website)+($term)"; толгой("Байршил: $redirect"); гарах;
Үүний хийдэг зүйл бол маш энгийн зүйл юм. Хэрэглэгчийн дамжуулсан нэр томъёог аваад Google хайлтын хуудас руу шилжүүлээрэй. Хайлтын асуулга дахь сайт: түлхүүр үгийг ашиглан хайлтын үр дүнг манай одоогийн домэйнд хязгаарлана уу. Таны Google-ээр индексжүүлсэн бүх хуудсууд одоо хайлтаар боломжтой болно. Хэрэв та гэртээ хайлт хийхийг хүсч байвал үргэлжлүүлэн уншаарай.
Гэрийн хайлтын шийдэл
Бид цааш явахаасаа өмнө энэ блог дээрх хайлтын талбарыг ашиглаж үзнэ үү. Энэ нь миний доор тайлбарлахтай ижил процессыг ашигладаг. Хэрэв та үүнийг хүсч байна гэж бодож байвал үргэлжлүүлэн уншина уу.
Энэ шийдэл нь жижиг вэбсайтуудад зориулагдсан. Би хоёр талдаа зэрлэг карттай LIKE-г ашигладаг бөгөөд энэ нь таны хайлтыг индексжүүлэх боломжгүй гэсэн үг юм. Энэ нь таны блог эсвэл олон тооны өгөгдөл агуулаагүй хувийн вэб сайтад энэ шийдэл сайн ажиллана гэсэн үг юм. Үүнийг илүү том вэб сайт руу шилжүүлбэл маш удааширч магадгүй. MySQL нь бүрэн текст хайлтыг санал болгодог бөгөөд энэ нь бидний энд хийж байгаа зүйл биш юм.
Жич:Хэрэв танд 5000 блог нийтлэл байгаа бол та зүгээр байна. .
Бид энэ блогийн бүтцийг лавлагаа болгон авах болно. Блог нийтлэл бүр нь:
- Гарчиг p_гарчиг
- URL p_url
- Хураангуй p_summary
- Нийтлэлийн агуулга p_content
- Мөн категори ангилал.tagname
Бидний хайлтын үгтэй таарч буй талбар бүрт бид оноо өгнө. Тоглолтын ач холбогдлыг харгалзан оноог гаргана.
// нэр томьёотой яг таарах нь гарчигнаас олддог $scoreFullTitle = 6; // хэсэг дэх гарчгийг тааруулах $scoreTitleKeyword = 5; // яг тохирсон нэр томъёог хураангуй хэсгээс олж болно $scoreFullSummary = 5; // $scoreSummaryKeyword = 4 хэсэгт хураангуйг тааруулах; // $scoreFullDocument = 4 агуулгаас яг тохирох нэр томьёо олдсон; // баримтыг $scoreDocumentKeyword = 3 хэсэгт тааруулах; // $scoreCategoryKeyword = 2 ангилалтай таарч байна; // url-тай таарч байна $scoreUrlKeyword = 1;
Эхлэхээсээ өмнө хайлтанд төдийлөн нэмэр болохгүй цөөн хэдэн үгсийг хасах хэрэгтэй. Жишээ нь "in","it","a","the","of" ... . Бид тэдгээрийг шүүж, хамааралгүй гэж үзсэн үгээ чөлөөтэй нэмж оруулах болно. Өөр нэг зүйл бол бид асуулгын уртыг хязгаарлахыг хүсч байна. Бид хэрэглэгчийг хайлтын талбарт роман бичиж, манай MySQL серверийг сүйрүүлэхийг хүсэхгүй байна.
// Хайлтын үгнээс шаардлагагүй үгсийг устгаад массив функц болгон буцаана filterSearchKeys($query)( $query = trim(preg_replace("/(\s+)+/", " ", $query)); $words = array(); // энэ жагсаалтыг өөрийн үгээр өргөжүүлнэ үү. $list = array("in","it","a","the","of","эсвэл","Би","та", "тэр", "би", "бид", "тэд", "тэр", "түүнд", "гэхдээ", "тэр", "энэ", "тэдгээр", "дараа нь"); $c = 0; foreach(explode(" ", $query) as $key)( if (in_array($түлхүүр, $жагсаалт))( үргэлжлүүлэх; ) $words = $key; if ($c >= 15)( завсарлага; ) $c++ ; ) буцаах $words; ) // хязгаарлах үгийн тэмдэгтийн тоог функцийн хязгаарChars($query, $limit = 200)( буцах substr($query, 0,$limit); )
Манай туслах функцууд одоо тэмдэгтийн тоог хязгаарлаж, хэрэггүй үгсийг шүүж чадна. Бидний алгоритмаа хэрэгжүүлэх арга бол тохирохыг олох бүрт оноо өгөх явдал юм. Бид if хэллэгийг ашиглан үгсийг тааруулж, илүү олон үг тааруулах тусам оноо цуглуулна. Төгсгөлд нь бид энэ оноог ашиглан үр дүнгээ эрэмбэлж болно
Жич:Би MySQL мэдээллийн санд хэрхэн холбогдохыг харуулахгүй. Хэрэв та мэдээллийн санд үр дүнтэй холбогдоход асуудалтай байгаа бол би үүнийг уншихыг зөвлөж байна.
Эхлээд функцдээ бүтэц өгье. Хэсгүүдийг тусад нь хэрэгжүүлэхийн тулд би орлуулагч үлдээсэн болохыг анхаарна уу.
Функцийн хайлт($query)( $query = trim($query); if (mb_strlen($query)===0)( // хоосон хайлт хийх шаардлагагүй биз дээ? false буцаана; ) $query = limitChars($query) ; // Жинлэх оноо $scoreFullTitle = 6; $scoreTitleKeyword = 5; $scoreFullSummary = 5; $scoreFullSummaryKeyword = 4; $scoreFullDocument = 4; $scoreDocumentKeyword = 3; $scoreCategoryKeyword =ar; $scoreCategoryKeyword =Keyword =SechlU1; с( $query); $escQuery = DB::escape($query); // db объектыг авахын тулд дээрх тэмдэглэлийг үзнэ үү $titleSQL = массив(); $sumSQL = массив(); $docSQL = массив(); $categorySQL = массив (); $urlSQL = массив(); /** Бүрэн тохиолдлуудыг тааруулах PLACE HOLDER **/ /** Түлхүүр үгсийг тохирох 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).")+ (-- tag/category ".implode(" + ", $categorySQL).")+ (-- url ". implode(" + ", $urlSQL)).
Асуулгад бүх оноог хамаарлын хувьсагч болгон нэгтгэх бөгөөд бид үүнийг ашиглан үр дүнг эрэмбэлж болно.
Бүрэн тохиолдлыг тааруулж байна
Бид эхлээд түлхүүр үгтэй байгаа эсэхийг шалгаад дараа нь асуулга нэмнэ.
If (count($keywords) > 1)( $titleSQL = "if (p_title LIKE "%".$escQuery."%",($scoreFullTitle),0)"; $sumSQL = "if (p_summary LIKE "%" .$escQuery."%",($scoreFullSummary),0)"; $docSQL = "хэрэв (p_content LIKE "%".$escQuery."%",($scoreFullDocument),0)"; )
Эдгээр нь илүү өндөр оноотой тоглолтууд юм. Хайлтын үг нь эдгээрийг агуулсан нийтлэлтэй таарч байвал тэдгээр нь дээгүүр гарч ирэх магадлал өндөр байх болно.
Түлхүүр үгсийн тохиолдлуудыг тааруулах
Бид бүх түлхүүр үгсийг давтаж, тэдгээр нь аль нэг талбарт таарч байгаа эсэхийг шалгана. Нийтлэл олон категоритой байж болох тул категорийн тааруулахын тулд би дэд асуулга ашигласан.
Foreach($түлхүүр үг нь $түлхүүр)( $titleSQL = "хэрэв (p_title LIKE "%.DB::escape($key)."%",($scoreTitleKeyword),0)"; $sumSQL = "хэрэв (p_summary LIKE) "%".DB::escape($key).."%",($scoreSummaryKeyword),0)"; $docSQL = "хэрэв (p_content LIKE "%".DB::escape($key)."% ",($scoreDocumentKeyword),0)"; $urlSQL = "хэрэв (p_url LIKE "%".DB::escape($key)."%",($scoreUrlKeyword),0)"; $categorySQL = "хэрэв бол ((Category.tag_id) категороос JOIN post_category ON post_category.tag_id = category.tag_id ХААНА post_category.post_id = p.post_id AND category.name = "".DB::escape($key).") > 0 ,($scoreCategoryKeyword),0)"; )
Мөн доор тайлбарлагчийн хэлсэнчлэн, бид эдгээр хувьсагчид хоосон массив биш эсэхийг шалгах ёстой, эс тэгвээс асуулга амжилтгүй болно.
// Хоосон байвал 0-г нэмнэ үү (хоосон($titleSQL))( $titleSQL = 0; ) if (empty($sumSQL))( $sumSQL = 0; ) if (empty($docSQL))( $docSQL = 0; ) хэрэв (хоосон($urlSQL))( $urlSQL = 0; ) хэрэв (хоосон($tagSQL))( $tagSQL = 0; )
Төгсгөлд нь тухайн нийтлэл нь хайлтын үгтэй хамааралтай эсэхийг тодорхойлохын тулд бүх асуултуудыг нэгтгэж, нэгтгэдэг.
// Хайлтын үгнээс шаардлагагүй үгсийг устгаад массив функц болгон буцаана filterSearchKeys($query)( $query = trim(preg_replace("/(\s+)+/", " ", $query)); $words = array(); // энэ жагсаалтыг өөрийн үгээр өргөжүүлнэ үү. $list = array("in","it","a","the","of","эсвэл","Би","та", "тэр", "би", "бид", "тэд", "тэр", "түүнд", "гэхдээ", "тэр", "энэ", "тэдгээр", "дараа нь"); $c = 0; foreach(explode(" ", $query) as $key)( if (in_array($түлхүүр, $жагсаалт))( үргэлжлүүлэх; ) $words = $key; if ($c >= 15)( завсарлага; ) $c++ ; ) буцаах $words; ) // тэмдэгтийн тоог хязгаарлах үг функцийн хязгаарChars($query, $limit = 200)( буцах substr($query, 0,$limit); ) функцийн хайлт($query)( $query = trim ($query); if (mb_strlen($query)===0)( // хоосон хайлт хийх шаардлагагүй, зөв үү? худал буцах; ) $query = limitChars($query); // Жинлэх оноо $scoreFullTitle = 6; $ scoreTitleKeyword = 5, $scoreFullSummary = 5, $scoreSummaryKeyword = 4, $scoreFullDocument = 4, $scoreDocumentKeyword = 3, $scoreCategoryKeyword = 2, $scoreUrlKeyword = 1; $keywords = 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 = "хэрэв (p_summary "%".$escQuery."%",($scoreFullSummary),0)"; $docSQL = "хэрэв (p_content LIKE "%".$escQuery."%",($scoreFullDocument), 0)"; ) /** Түлхүүр үгсийг тааруулах **/ foreach($түлхүүр үгсийг $түлхүүр)( $titleSQL = "хэрэв (p_title LIKE "%".DB::escape($key)."%",($scoreTitleKeyword) ),0)"; $sumSQL = "хэрэв (p_summary LIKE "%".DB::escape($key)."%",($scoreSummaryKeyword),0)"; $docSQL = "хэрэв (p_content LIKE "%" ".DB::escape($key)."%",($scoreDocumentKeyword),0)"; $urlSQL = "хэрэв (p_url LIKE "%".DB::escape($key).."%", ( $scoreUrlKeyword),0)"; $categorySQL = "хэрэв ((Category.tag_id) категороос НЭГДСЭН post_category.tag_id = category.tag_id ХААНА post_category.post_id = p.post_id БА ангилал.нэр =" . DB::escape($key)."") > 0,($scoreCategoryKeyword),0)"; ) // Хэрэв хоосон байвал (хоосон($titleSQL))( $titleSQL = 0) нэмнэ үү. ; ) хэрэв (хоосон($sumSQL))( $sumSQL = 0; ) хэрэв (хоосон($docSQL))( $docSQL = 0; ) хэрэв (хоосон($urlSQL))( $urlSQL = 0; ) хэрэв (хоосон($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, ((-- Гарчгийн оноо ".implode(" + ", $titleSQL). ")+ (-- Дүгнэлт ".implode(" + ", $sumSQL).")+ (-- баримт бичиг ".implode(" + ", $docSQL).")+ (-- шошго/категори ".implode" (" + ", $categorySQL).")+ (-- url ".implode(" + ", $urlSQL).")) хамааралтай байдлаар p.status = "нийтлэгдсэн" ХААНА хамааралтай > 0 ЗАХИАЛАХ хамаарал DESC,p.page_views DESC LIMIT 25"; $үр дүн = DB::query($sql); if (!$results)( return false; ) return $results; )
Одоо таны search.php файл дараах байдлаар харагдах болно.
$term = isset($_GET["query"])?$_GET["query"]: ""; $хайлтын_үр дүн = хайлт($нэр томъёо); if (!$search_results) ( echo "Үр дүн байхгүй"; exit; ) // Энд үр дүнгийн хамт хуудсыг хэвлэ.
Бид хангалттай хэмжээний контентыг зохицуулах энгийн хайлтын алгоритмыг бүтээсэн. Би тоглолт бүрийн оноог дур зоргоороо сонгосон тул өөрт хамгийн тохиромжтой зүйл болгон тохируулж болно. Мөн сайжруулах боломж үргэлж байдаг.
Хэрэглэгчдээс ирж буй хайлтын нэр томъёог хянах нь зүйтэй бөгөөд ингэснээр ихэнх хэрэглэгчид ижил зүйлийг хайж байгаа эсэхийг харах боломжтой болно. Хэрэв загвар байгаа бол та тэдгээрийг аялалаа хадгалж, үр дүнг ашиглан кэш хийх боломжтой Memcach хийсэн.
Хэрэв та энэ хайлтын алгоритмыг хэрхэн ажиллаж байгааг харахыг хүсвэл хуудасны дээд хэсэгт байрлах хайлтын хэсгээс нийтлэл хайж үзээрэй. Би текстээс таарсан хэсгийг буцааж өгөх гэх мэт нэмэлт функцүүдийг нэмсэн. Өөрийнхөө онцлог шинж чанаруудыг нэмж болно.
Энэ нийтлэл танд таалагдсан уу? Та илүү гайхалтай зохиолуудыг уншихын тулд бүртгүүлж болно. .
Үүнтэй холбоотой зарим сонирхолтой нийтлэлүүдийг энд оруулав.
Mysql_* функцуудтай нэг удаа, бүрмөсөн ажиллах цаг болжээ. Эдгээр аргууд нь хуучирсан бөгөөд удаан байдаг. Шинэчлэх хугацаа аль эрт өнгөрсөн ч бид үүнийг хаа сайгүй харж байна. Би зохиогч бүрийг өөрийн хичээл, блогоо шинэчлэхийг албадах боломжгүй тул би илүү сайн эрэмбэлж, шинээр ирсэн хүмүүст туслах чухал мэдээллээр хангахын тулд нийтлэл бичихээр шийдсэн.
Өөрийнхөө вэбсайтыг хийх нь тийм ч хэцүү биш байх ёстой. Godaddy эсвэл Hostgator зэрэг хостинг компаниуд нь хэн ч эхлэхэд маш хялбар болгодог; тэд танд хэзээ ч код бичихгүйгээр бүхэл бүтэн вэбсайт үүсгэх боломжийг олгодог. Ихэнх хүмүүсийн хувьд вэбсайтыг ажиллуулах нь хангалттай байдаг. WordPress блог. Хэрэв та үүнийг хайж байгаа бол яг одоо Godaddy.com руу зочлоорой. Бид энд дуусч байна. Гэхдээ нөгөө талаас, хэрэв та хяналтанд байж, хуваалцсан хостингын богино хугацаанд хязгаарлагдахгүй байхыг хүсч байвал Та хэтэвчээ эвдэхгүйгээр зөв газартаа хүрлээ.
Vim бол терминал дээрх миний дуртай текст засварлагч юм. Нано болон emacs-аар хэсэг хугацаанд тоглосны эцэст би vim-ийг энгийн байдлын үүднээс шийдсэн (надад нүцгэн байгаарай). Хэдийгээр үүнийг бүхэлд нь IDE шиг өөрчилж, ашиглах боломжтой ч би үүнийг ихэвчлэн сервер дээрх файлуудыг засварлах, жижиг боловч чухал өөрчлөлтүүдийг хийхэд ашигладаг. Редакторын дайнд орохгүй байж эхэлцгээе.
Сэтгэгдэл(45)
Зарел 2015 оны 8-р сарын 12:
Ян Мустафа 2015 оны есдүгээр сарын 26:
Роб 2015 оны 9-р сарын 29:
адем 2016 оны 2-р сарын 11:
Иван Венедиктов 2016 оны дөрөвдүгээр сарын 9.
Мэдээжийн хэрэг хайлтын системийг сурталчлах талаар дор хаяж ямар нэгэн ойлголттой хүн бүр мета шошгоны утгыг мэддэг. Гарчиг, тайлбар, h1-h6, alt болон бусад тэмдэглэгээний ач холбогдлыг хүн бүр мэддэг. Тэд вэбсайтын оновчлолд нөлөөлдөг гэдгийг хэн ч үгүйсгэхгүй. Гэхдээ хайлтын системүүд шошгуудын нэг болох түлхүүр үгийн шошгонд хоёрдмол хандлагатай байдаг.
Сүүлийн жилүүдэд интернетэд халз мэтгэлцээн өрнөж, өнөөг хүртэл үргэлжилж байна: мета шошго гэсэн түлхүүр үгсийг ашиглах нь үнэ цэнэтэй юу? Харамсалтай нь хэн ч яг тодорхой хариулт өгч чадахгүй. Янз бүрийн үзэл бодлыг авч үзээд энэ асуудлыг ойлгохыг хичээцгээе.
Түлхүүр үгс гэж юу вэ?
Түлхүүр үгс нь тухайн хуудасны агуулгад тохирох түлхүүр үгс (сайтын нэг хуудсанд 20-оос илүүгүй) юм.
Хуудасны кодонд энэ мета шошго дараах байдалтай байна.
Эхэндээ шошго нь сайтын хуудсуудын хамааралд ихээхэн нөлөөлсөн бөгөөд улмаар хайлтын системийн дээд байруудад сайтын зэрэглэлд нөлөөлсөн.
Үүнийг мэдсэн сайтын эзэд хууран мэхэлж эхлэв - түлхүүр үгсийг буруугаар ашиглах эсвэл энэ шошгон дээр олон тооны зохисгүй үгсийг нэмнэ. Хайлтын системүүд үүнийг маш хурдан олж мэдсэн.
Одоо юу болоод байна вэ?
Тэдний хэлснээр, нэг туйлаас нөгөөд: үр дүнд нь хайлтын системүүд энэ шошгон дээр ямар ч утга оруулахаа больсон.
Yandex
Yandex-ийн төлөөлөгчид түлхүүр үгсийн талаар дараахь зүйлийг хэлэв. "... хайлтын асуулгад тохирох хуудсыг тодорхойлохдоо анхааралдаа авч болно".
Энд байгаа түлхүүр үг гэдгийг анхаарна уу Магадгүй. Эцэст нь Магадгүйогтхон ч гэсэн үг биш харгалзан үзсэн.
Систем нь эргэлзээ төрүүлэхгүй бөгөөд бодох үндэслэлгүй юм. Энд бүх зүйл товч бөгөөд тодорхой байна: "Бид хайлтын зэрэглэлд түлхүүр үгсийн мета шошгыг ашигладаггүй", "Google олон жилийн турш түлхүүр үгсийн мета шошгыг үл тоомсорлож байгаа бөгөөд одоогоор бид энэ бодлогыг өөрчлөх шаардлагагүй гэж үзэж байна".
"Бид хайлтын зэрэглэлд түлхүүр үгийн мета шошгыг ашигладаггүй", "Google олон жилийн турш түлхүүр үгсийн мета шошгыг үл тоомсорлосон бөгөөд одоогоор энэ бодлогыг өөрчлөх шаардлагагүй".
Rambler, Yahoo, Mail.ru
Тэд Google-ийн санал бодлыг хуваалцаж, мета шошго гэсэн түлхүүр үгс нь ашиг тусаа алдсан гэж үздэг. Тиймээс эдгээр хайлтын системүүд үүнийг огт тоодоггүй.
Гэхдээ яагаад олон хүмүүс түлхүүр үгсийг ашигладаг хэвээр байна вэ?
Энэ нь Yandex-ийн шошготой холбоотой хоёрдмол утгатай үгтэй холбоотой байх. Сайтын эздийн логик нь ийм байна: хэрэв Yandex шошгыг анхаарч үзэх болно гэж найдаж байгаа бөгөөд Google, Rambler, Yahoo, Mail.ru нь мета шошгоны талаар төвийг сахисан бол үүнийг бөглөх нь байдлыг улам дордуулахгүй.
Хэрэв тийм бол яах вэ?
Түлхүүр үгийн шошгыг бөглөх нь хор хөнөөлтэй байж болзошгүй гэсэн оновчлогчдын дунд байдаг. Хэрэв хайлтын системүүд шошгыг шошго гэж үзэхгүй бол түүнд орсон текстийг ердийн сайтын текст гэж уншина. Хэрэв та эдгээр түлхүүрүүдийг бусад шошго болон текстийн хэсэгт аль хэдийн ашигласан бол хуудсыг түлхүүрээр "хэт спамлах" эрсдэлтэй. За, хэт спам (хэт их дотор муухайрах) таныг шүүлтүүрийн доор оруулж болно.
1PS үзэл бодол
Одоогийн байдлаар бид ерөнхий нөхцөл байдал, асуудлын талаархи янз бүрийн санал бодлыг тайлбарлав. Хүн бүр өөрийн гэсэн үзэл бодолтой байдаг. Бидний зорилго бол түлхүүр үгсийн тагийг бөглөхгүй байх нь дээр. Үүнээс ямар ч ашиг гарахгүй нь гарцаагүй, гэхдээ шүүлтүүрийн дор унах эрсдэл байсаар байна.
Вэбсайтаа зөв агуулга, шошготойгоор сурталчлах нь дээр
P.S. Өөрийн нөөцийг сурталчлахад амжилт хүсье.
Бид төрөл бүрийн үйлчлүүлэгчдэд интернет маркетинг, вэб сайтаа хөгжүүлэхэд нь тусалдаг бөгөөд "Та вэб сайтад түлхүүр үгээ хэрхэн нэмэх вэ?" гэсэн асуулт бидэнд байнга ирдэг. Та биднийг компьютерийн дэлгэцэн дээр маш нарийн төвөгтэй томьёо, кодуудыг нэмж байна гэж төсөөлж магадгүй.
Гэхдээ үнэн бол үндсэн ойлголтууд нь таны бодож байгаагаас хамаагүй хялбар юм. Бид өөрсдийн бизнесийн блог хөтөлдөг үйлчлүүлэгчдэдээ хайлтын системээс хялбар олохын тулд вэбсайтынхаа хуудсуудыг хэрхэн түлхүүр үгээр оруулахыг зааж өгдөг. Энэ блогийн нийтлэлийн зорилго нь вэб сайтад түлхүүр үг нэмэх талаар зарим үндсийг заах явдал юм. Та цаг гаргахыг хүсэхгүй байна уу? Эндээс манай SEO үйлчилгээг харна уу, бид танд туслахдаа баяртай байх болно.
Та яагаад вэб сайтад түлхүүр үг нэмэх талаар мэдэх ёстой вэ?
Вэбсайтад түлхүүр үг нэмж сурснаар та өөрийн блог, вэб хуудас болон бусад интернет маркетингийн материалыг түлхүүр үгээр бичих боломжтой болно. Та SEO яагаад таны бизнест маш чухал болохыг ойлгох болно.
Миний вэбсайтад түлхүүр үг нэмэх нь миний бизнест хэрхэн туслах вэ?
Вэбсайтдаа түлхүүр үг нэмэх нь хайлтын системд таны вэбсайт хайж буй хэн нэгэнд юу санал болгож болохыг ойлгоход тусалдаг бөгөөд эцэст нь танд илүү чадварлаг урсгалыг авчрах болно. Хэрхэн? Түлхүүр үг гэх мэт танигчтай. Таны вэбсайтын хуудсан дээрх түлхүүр үгсгүйгээр хайлтын систем таны вэбсайтыг ангилж, хайж буй хүмүүстээ харуулах боломжгүй юм..Ингэж бодоод үз дээ, сайн бичсэн илтгэл нь дипломын ажилтай холбоотой, түүнийг дэмжих аргументтай байдаг. Сайн бичсэн нийтлэлийн уншигчид ямар сэдэв, юуны тухай өгүүлэх талаар тодорхой ойлголттой байдаг. Энэ бол Google болон бусад хайлтын системийн цаана байгаа ижил онол юм. Үнэн хэрэгтээ Стэнфордын хоёр оюутан Google-ийг яг ийм санаагаар бүтээжээ.
Сайтар хийгдсэн вэбсайт нь үндсэн сэдэвтэй бөгөөд гол сэдэвтэй холбоотой дэд категориудтай байдаг бөгөөд эдгээр хэсэг тус бүрийг түлхүүр үгээр оруулснаар бид хайлтын системд тодорхой дүр зургийг өгөх боломжтой бөгөөд хайж буй хүмүүс таныг илүү хялбар олох боломжтой болно. . Жишээлбэл:
Таны гол сэдэв байж болно: Donuts
Таны дэд ангилал эсвэл сэдвүүд дараахь байж болно.Бялуу, гурилан бүтээгдэхүүн, баар,…
Вэбсайтдаа түлхүүр үг сонгох
Одоо та сайтын хүрээ, энэ нь ямар чухал болохыг ойлгож байгаа тул түлхүүр үг сонгох цаг болжээ. Хэрхэн? Бид хэд хэдэн хэрэгслийг ашиглаж, түлхүүр үгсийнхээ талаар өргөн хүрээний судалгаа хийдэг; Гэсэн хэдий ч үнэгүй нэг хэрэгсэл бол Google Түлхүүр үгийн хэрэгсэл юм. Байршлын мэдээлэл, ангиллыг оруулаад вэбсайтынхаа үндсэн сэдвийг бичнэ үү. Энэхүү хэрэгсэл нь хэд хэдэн түлхүүр үг үүсгэх бөгөөд танд дараах статистик мэдээллийг өгөх болно:
Тэмцээн:(Бага, Дунд, Өндөр) Энэ нь тухайн үг эсвэл хэллэгт хэдэн хүн түлхүүр үг оруулах гэж оролдож байгааг хэлж өгнө. Өрсөлдөөн өндөр байх тусам тухайн хайлтын нэр томъёогоор Google-д дээгүүрт ороход хэцүү байдаг.
Дэлхийн сарын хэмжээ: Дэлхий даяар тухайн нэр томъёоны талаар сард хэдэн хайлт хийдэг вэ?
Орон нутгийн сар бүр:Таны хайлтанд оруулсан мэдээллээр тодорхойлогддог. Хэрэв та байршлаа АНУ гэж заасан бол дараа нь энэ нь АНУ-д тухайн нэр томъёоны сарын хайлтын тоо байх болно.
Хэдийгээр энэ хэрэгслийг ашиглахад хялбар боловч бүх түлхүүр үгсийг ижил байдлаар авч үздэггүй. Үнэн хэрэгтээ зарим түлхүүр үгс нь бусдаас илүү их урсгалыг авчирдаг бол зарим нь хэзээ ч хувирдаггүй маш их урсгалыг авчирч магадгүй юм. Тиймээс бид бизнес эрхлэгчдэд SEO болон түлхүүр үгийн чиглэлээр боловсрол эзэмшсэн агентлагийг ажилд авахыг зөвлөж байна.
Нэг хуудсанд хэдэн түлхүүр үг нэмэх шаардлагатай вэ?
Түлхүүр үгийн судалгаа хийсний дараа та сонгох хэрэгтэй болно нэг түлхүүр үгтаны вэбсайтын хуудас эсвэл блог бүрт. Түлхүүр үгс нь хуудасны сэдэвтэй холбоотой байх ёстой бөгөөд таны вэбсайтын ерөнхий сэдэвтэй холбоотой байх ёстой.
Сайн түлхүүр үг сонгох жишээ:
Сайтын үндсэн сэдэв: Donut
Вэбсайт хуудас: Maple Donut
Томилогдсон түлхүүр үг:Шилдэг Maple Donut
Түлхүүр үгийн буруу сонголтын жишээ:
Сайтын үндсэн сэдэв: Donut
Вэбсайт хуудас: Maple Donut
Томилогдсон түлхүүр үг: Donut жор
Вэбсайтынхаа хуудсанд түлхүүр үгсийг хэрхэн нэмэх вэ:
Вэбсайтдаа түлхүүр үг оруулахдаа вэбсайтынхаа хуудас бүрийн 6 газарт түлхүүр үгээ оруулах нь чухал. Эдгээр 6 хэсэгт түлхүүр үгээ оруулснаар хайлтын системд таны хуудасны сэдвийг тодорхойлж, хайлтын үр дүнд таны хуудсыг эрэмбэлэх болно.
- Хуудасны гарчиг
- Мета тайлбар
- Толгой хэсэг
- Дэд гарчиг
- Биеийн догол мөрүүд
- Зургийн Alt шошго
Хуудасны гарчиг ба мета тайлбар:
Хуудасны гарчиг ба мета тайлбарууд нь таны вэбсайтын түлхүүр үгийн илүү техникийн хэсэг юм. Гэсэн хэдий ч эдгээр нь таны интернет маркетингийн хүчин чармайлтад хэр үнэ цэнэтэй болохыг ойлгох нь чухал юм. Хуудасны гарчиг ба мета тайлбар гэж юу вэ? Таны вэбсайтын хуудасны эдгээр хэсгүүд нь хайлтын үр дүнд гарч ирдэг бөгөөд тэдгээр нь хайгч таны вэбсайтын хуудаснаас авах анхны сэтгэгдэл юм.
Хэрэв та вэбсайтынхаа хуудасны гарчиг эсвэл мета тайлбарт хандах эрхгүй бол эдгээр хэсгүүдийг SEO-д зөв бөглөсөн эсэхийг вэбсайтын удирдлагын компаниас шалгах нь чухал юм.
Гарчиг:
Толгой нь хайлтын системд зориулсан сурталчилгааны самбартай маш төстэй юм. Эдгээр нь таны хуудасны үндсэн сэдэв юу болохыг хайлтын системд харуулах хамгийн том арга замуудын нэг юм. Та өөрийн толгой хэсэгт түлхүүр үгээ бүхэлд нь оруулах нь чухал юм.
Дэд гарчиг:
Дэд гарчиг нь хайлтын системд вэбсайтын хуудсыг юунд хүргэхийг хүсч байгаагаа хэлэх өөр нэг хэсэг юм. Энэ хэсгийг үл хөдлөх хөрөнгө гэж бодоорой, хэрэв та дэд гарчигт түлхүүр үгээ оруулахгүй бол та алдаж байна.
Үндсэн догол мөр:
Вэбсайтынхаа хуудасны үндсэн агуулгыг бичихдээ та түлхүүр үгээ, эсвэл түлхүүр үгийнхээ зарим хэсгийг оруулахыг хичээх хэрэгтэй. Бичлэгээ байгалийн байлгахаа мартуузай, хэрэв таны бичсэн түлхүүр үгнүүд нь байгалийн бус мэт санагдах юм бол хайлтын систем таныг шийтгэх болно. Анх түлхүүр үгээр бичих гэж оролдоход танд хэцүү санагдаж магадгүй ч дадлага хий! Энэ нь үнэхээр хялбар болж, та түлхүүр үг нэмэх контентоо илүү сайн болгох болно.
Зургийн Alt шошго:
Зураг нь ямар ч вэб хуудасны гайхалтай нэмэлт бөгөөд үнэндээ хайлтын системд таныг эрэмбэлэхэд тусалдаг. Alt шошго нь үндсэндээ таны зурагт оноож өгдөг шошго бөгөөд хайлтын системүүд зургийг унших боломжтой. Хэрэв та Alt тэмдэглэгээг зурганд ашиглахгүй бол хайлтын систем үүнийг харахгүй. Эдгээр зургуудыг Alt Tags гэж түлхүүр үгээр оруулснаар та хайлтын системд "Би зураг ашигласан бөгөөд энэ нь миний хуудасны сэдэвтэй холбоотой" гэж хэлж байна.
Та энд байна, одоо та вэб сайтад түлхүүр үг нэмэх үндсийг мэдэж байна. Энэ нь үнэхээр хэцүү гэдгийг бид мэднэ, гэхдээ танд өөрийн блог эсвэл вэбсайтын агуулгыг бичих цаг байгаа бол дээр дурдсан зарим зөвлөмжийг ашиглахыг зөвлөж байна. Эдгээр тактикууд нь таны вэбсайт руу илүү их урсгалыг авчирч, таны вэбсайтын тэргүүлэгчдийг сонгоход тусална. Энэ нь таны бизнест дэмий зочлох шаардлагагүй, илүү олон үйлчлүүлэгчид гэсэн үг юм.
Хэрэв танд энэ нийтлэл хэрэгтэй байсан бол найзтайгаа хуваалцаарай.
Энэ талаар нийтлэл бичихийг надаас хэд хэдэн удаа асуусан PHP ашиглан вэбсайт дээр хайлтыг хэрхэн хэрэгжүүлэх. Энэ бол амар ажил биш, би маш хэцүү гэж хэлэх болно, учир нь маш олон тооны нюанс, саад тотгорууд байдаг. Энэ нийтлэлд би дүн шинжилгээ хийх болно вэбсайт хайлтын алгоритм.
Манай вэбсайтад маш олон төрлийн материал (нийтлэл, мэдээ, тэмдэглэл гэх мэт) байгаа гэж бодъё. Энэ бүх зүйл мэдээллийн санд байгаа. Мөн бидний даалгавар сайт дээр хайлт хийх. Хамгийн энгийн алгоритм нь дараах байдалтай байна.
- Үүсгэх HTML хэлбэрхайлтын талбар, мөн "товчтой Илгээх". Хэрэглэгчид текст талбарт хайлтын асуулга оруулаад товчлуур дээр дарна.
- Хайлтын асуулгыг авах (ихэвчлэн аргаар дамжуулдаг АВАХ, гэхдээ заримдаа тэд бас ашигладаг POST), мөн түүнчлэн, хамгаалах зорилгоор XSS, функцээр дамжуулна htmlspecialchars().
- Хайлтын хайлтыг агуулсан эдгээр бичлэгүүдийн харгалзах хүснэгтүүдээс (нийтлэл, мэдээ, тэмдэглэл гэх мэт) сонголт хийнэ үү. Би ийм тохиолдлуудад зориулсан жишээ SQL асуулгыг харуулж байна: SELECT * FROM нийтлэлээс WHERE `text_article` LIKE %хайх% Үүний оронд оронд нь хайххайлтын мөрийг орлуулсан.
- Бичлэгийг хүлээн авсны дараа бид тэдгээрийг шаардлагатай хэлбэрээр, илүү тохиромжтой байдлаар харуулах болно. Жишээлбэл, би үүнийг вэбсайт дээрээ хийсэн: хаана хамгийн их таарч байгаа бол тэр нийтлэл хамгийн их хамааралтай, тиймээс би үүнийг нэгдүгээрт тавьдаг. Хамааралтай байдлыг үнэлэх энэ арга нь танд тохирсон байх магадлалтай.
Та нарын олонх нь энд ямар ч төвөгтэй зүйл байхгүй гэж хэлэх болно. Тэд зарим талаараа зөв байх болно, гэхдээ хайлтын мөрийн энэ жишээг харцгаая: " Би энэ текстийг хайж байна". Асуулт гарч ирнэ: " Та яг юу хайж байгаа юм бэ?". Текстийн яг тохиолдлыг хайж байна" Би энэ текстийг хайж байна". Эсвэл, гурван үг байгаа боловч бие биенээ дагадаггүй текстийг хайдаг. Эсвэл эдгээр үгсийн ядаж нэг нь байгаа текстийг хайдаг.
Эндээс даалгавар нь илүү төвөгтэй болдог. Та нарийн төвөгтэй синтакс системийг үүсгэж болно (хайлтын системд байдаг шиг), жишээлбэл, хайлтыг хашилтанд заасан тохиолдолд яг тохиолдлыг хайдаг. Мөн та хэрэглэгчдэд хайлтыг яг яаж хийхийг хүсч байгаагаа сонгох боломжтой (радио товчлууруудыг ашиглан). Үүнийг миний вэбсайт дээр ингэж хийсэн. Тиймээс өмнөх алгоритм дээр дахин нэг цэг нэмж оруулав. SQL асуулга эмхэтгэх. Асуулгаас дор хаяж нэг үг агуулсан бүх материалыг гаргаж авах шаардлагатай үед SQL асуулгын жишээ энд байна. Би энэ текстийг хайж байна":
ХААНА ӨГҮҮЛЛҮҮДЭЭС СОНГОХ (`текст_нийтлэл` "%хайж байна%" ЭСВЭЛ `текст_нийтлэл` "%this%" ЭСВЭЛ `текст_нийтлэл` "%текст%" ШИГ)
Үүний дагуу хайлтын скрипт дээр та ижил төстэй зүйлийг үүсгэх ёстой SQL асуулга, мэдээллийн сан руу илгээж, хариу хүлээн авч, гаргана. Хэрэв та нийтлэлүүдийг хамааралтайгаар нь харуулж байгаа бол энэ нь бүр ч төвөгтэй болно, учир нь аль нь илүү хамааралтай болохыг шууд хэлэхэд хэцүү байдаг: 3 хүсэлтийн яг тохиолдлууд, эсвэл 10 асуулгын хэсгүүдийн илрэл. Миний сайт дээр яг тодорхой тохиолдлуудад илүүд үздэг боловч энэ асуудал аль хэдийн нэлээд маргаантай байдаг. Мэдээжийн хэрэг, энэ нь хэцүү бөгөөд хэрэв та үүнийг анх удаа хийж байгаа бол хэдэн цаг зарцуулах нь гарцаагүй. Минийх гэж найдаж байна PHP-ээр дамжуулан вэбсайтын хайлтыг хэрэгжүүлэх алгоритмЭнэ нь танд туслах болно.