関連性の高い内部リンクを自動的に構築する方法を探る

関連性の高い内部リンクを自動的に構築する方法を探る

内部リンクの重要性を説明する必要はありません。誰もが知っているはずです。内部リンク(および外部リンク)の関連性は非常に重要な指標です。この記事では、discuz プログラムを例に、coreseek フルテキスト検索システムを使用して関連性の高い内部リンクを構築する方法について簡単に説明します。

1. 現状

内部リンクを自動生成する方法は、一般的に 2 つあります。1 つは同じタグで内部リンクを挿入する方法、もう 1 つはキーワードを事前に指定しておき、記事内で対応するキーワードに遭遇したときに自動的に内部リンクを挿入する方法です。

しかし、この2つの方法にはそれぞれ欠点があります。前者の方法でタグを自動生成すると、存在しないタグが大量に生成されることが多く、関連性が保証されません。タグを手動で設定する場合は、長期間にわたる非常に面倒な作業になります。後者の方法では、手動でキーワードをプリセットする必要があり、面倒です。2つ目に、プリセットキーワードがない場合、内部リンクは自動的に生成されません。3つ目に、この方法は、

一般的に、コンテンツ内に対応するキーワードに遭遇した場合、同じ内部リンクが生成される相関性は高くない可能性があります。

disuzに付属している関連投稿機能も2種類に分かれています。 1 つはタグによって実装されており、前述の欠点があります。もう 1 つは Zongheng 検索によって提供されていますが、厄介なことに、この種の関連投稿は JavaScript によって実装されており、基本的に SEO には役に立ちません。

2. 関連性の高い内部リンクを自動的に生成するにはどうすればよいでしょうか?

解決すべき最初の問題は、関連性の度合いをどのように判断するかということです。特定のキーワードやタグを単に取得するのではなく、Levenshtein などのアルゴリズムを使用して、対象記事のタイトルとデータベース内の記事タイトルまたは全文を比較し、関連性の高い以前の記事を 1 つまたは複数見つけて内部リンクとして使用できます。

私の知る限り、coreseek全文検索システムは、フレーズの類似性と統計に基づく複合ランキング方式(BM25)を使用しており、このような機能を簡単かつ効率的に実装できます。私たちはそれを便利に使用できますし、能力のある人はそれを実装するための独自のプログラムを作成することもできます。

3. 以下では、discuz を例にして実装方法を説明します。

考え方は次のとおりです。投稿にアクセスするたびに、投稿のタイトルが coreseek で自動的に検索され、一致度の高い記事が見つかります。次に、見つけた記事へのリンクを投稿に追加します。

1. まず、coreseek を正しくインストールする必要があります。インストール方法については、公式 Web サイトまたは私の Web サイト www#4ji#cn を参照して、投稿 <<discuz で coreseek フルテキスト検索サーバーを設定し、独自の単語分割シソーラスを構築する>> を見つけてください。インストールは複雑に見えますが、実際には難しくありません。チュートリアルをステップごとに実行するだけです。

2. 上記の機能を実装する discuz プラグインを作成します。

プログラミングを知らなくても心配はいりません。プラグインはすでに作成されており、ダウンロード リンクは以下に記載されています。

ここでは、プラグインの動作原理を簡単に紹介します。discuz テンプレートには多くのフックがあります。ここでは、viewthread_postbottom を使用します。投稿を開いた後、viewthread_postbottom はプラグイン内の対応するメソッドをトリガーします。このメソッドは、投稿のタイトルを取得して coreseek で検索し、一致度の高い記事を見つけます。

次に、見つけた記事へのリンクを投稿に追加します。

4. メインソースコード

能力が限られているため、プログラムは完璧ではない可能性があります。ご指摘がありましたら、どうぞご指摘ください。

<?php

/**
* Discuz! X2 & X2.5 の関連記事のクラス
* @著者 D2002
* 著作権は http://www.4ji.cn にあります
*/


クラス plugin_dean_related_article {
関数 plugin_dean_related_article() {
グローバル $_G;
$this->display_qty = $_G['cache']['plugin']['dean_related_article']['display_qty'];
$this->weight = $_G['cache']['plugin']['dean_related_article']['weight'];
$this->index = $_G['キャッシュ']['プラグイン']['dean_related_article']['インデックス'];
}


}


クラス plugin_dean_related_article_forum は plugin_dean_related_article を拡張します {
パブリック関数viewthread_postbottom_output() {
グローバル $_G;
require_once libfile('class/sphinx');
$s = 新しい SphinxClient();
$s->setServer($_G['setting']['sphinxhost'], intval($_G['setting']['sphinxport']));
$s->setMaxQueryTime(intval($_G['setting']['sphinxmaxquerytime']));
$s->ランキングモードを設定します($_G['setting']['sphinxrank']);
$s->setLimits(0, $this->display_qty, $this->display_qty);
$s->setMatchMode(SPH_MATCH_ANY);

$subject = mb_convert_encoding($_G['forum_thread']['subject'],'UTF-8','GBK');
$ori_tid = $_G['フォーラムスレッド']['tid'];
$this->index==1 の場合、$result = $s->query($subject、$_G['setting']['sphinxsubindex']);
そうでない場合、$result = $s->query($subject, "*");
$tids = 配列();
結果
if(is_array($result['matches'])) {
foreach($result['matches']を$valueとして) {
if($value['attrs']['tid']&&$value['attrs']['tid']!=$ori_tid&&$value['weight']>=$this->weight) {
$tids[$value['attrs']['tid']] = $value['attrs']['tid'];
}
}
}
}

// $tids を返します。
$out="<div id='relate_subject'><div class='rs_main'><div class='rs_head'><h3 class='has_adv'>関連記事</h3></div>";
$out.="<ul id='rel_list'>";
if(!empty($tids) ){
$ids = implode(",", $tids);
$query = DB::query("SELECT tid,subject FROM ".DB::table('forum_thread')." WHERE tid IN ($ids) AND displayorder>='0' ORDER BY tid DESC");
$thread = DB::fetch($query) の間 {

$threadlist[$thread['tid']] = $thread;
}
$フラグ=1;
foreach($threadlist を $th として){
$flag==1の場合{
$out.="<li class='right_item'>";
$フラグ=0;
}それ以外{
$out.="<li class='left_item'>";
$フラグ=1;
}
$out.="<a href='thread-$th[tid]-1.html'>$th[件名]</a></li>";
}
}それ以外{
配列()を返します。
}

$out.="</ul></div></div>";
配列($out)を返します。

}

}
?>

五、

この記事は内部リンクを構築するアイデアのみを示しています。この方法が普及すれば、さまざまなプログラムやサイト間でも簡単に使用できるようになります。これが皆さんのお役に立てれば幸いです。

六、

このプラグインは厳密にテストされておらず、前提条件として coreseek がインストールされている必要があるため、discuz アプリケーションの公式 Web サイトではリリースされていません。必要な場合は、私の Web サイト http://www#4ji#cn/thread-9326-1.html から完全なインストール パッケージを無料でダウンロードできます。

この記事はFour Seasons Clothing Networkによって作成されたものです。転載の際は著作権を留保してください。

元のタイトル: 関連性の高い内部リンクを自動的に構築する方法について

キーワード: 内部リンク、関連性、ウェブマスター、ウェブサイト、ウェブサイトのプロモーション、収益化

<<:  404 ページが多数あると、Web サイトの信頼性が低下しますか?

>>:  QQグループを利用したプロモーションスキルについての簡単な説明

推薦する

KubeMQ が Kafka の代わりとなるのはなぜですか?

[51CTO.com クイック翻訳]このような複雑な操作を実装するには、すべてのリクエストとアラート...

高品質のオリジナルコンテンツは、高品質のコンテンツを作成するためのアイデアを提供します

検索エンジンは、ウェブサイトのコンテンツが高品質のオリジナルコンテンツであるかどうかをどうやって判断...

権威ある組織IDCがPing An Cloudの金融クラウド機能を認める

——平安クラウドは平安銀行と平安生命の革新的な変革の実現を支援[51CTO.comより引用] 201...

ウェブサイト外部リンクの新たな方向性:外部リンクの多様化

Baidu の度重なる革新の波により、ウェブサイト上の外部リンクの数は減少しています。ウェブサイトの...

小規模地域の病院ウェブサイトは、百度の大再編の機会を捉えて「一挙に優勝」すべき

先雲さんは最近、地方の民間病院のネットワーク部門で編集者と最適化担当者として働いていた。6月から現在...

Baidu入札に表示されるミニページ割引アイコンの分析

360 Searchは、これまでずっとBaiduの入札を攻撃の武器として利用してきた。360は最近、...

オフサイト ウェブサイトの構築プロセスに関する簡単な説明 (パート 1)

東莞SEO業界の発展と応用が遅れる中、知識格差の欠点が再び明らかになった。この短い8日間で、適応、認...

企業ウェブサイトの内部更新におけるよくある問題の分析

私が今日この記事を書いた理由は、ビジネスを最適化する際に記事を更新するときに注意すべき点を友人に伝え...

内部ウェブサイト最適化のための 404 エラー ページを設計する際に注意すべき 3 つのポイント

ウェブサイトを運営している友人は、ウェブサイトのアップグレード、システムの変更、仮想ホストの変更など...

デジタルトランスフォーメーションとエッジコンピューティングを組み合わせる7つの方法

デジタル変革の取り組みはデータ分析に大きく依存します。しかし、根本的な変化を起こすには、組織はデータ...

ショートビデオマーケティング:「黄金の7秒」に戻り、「盆栽」精神を捨て去る

広告には「7秒」の印象理論があります。広告が消費者を引き付けられるかどうかの鍵は、最初の7秒にありま...

#推奨# serverfield: 台湾サーバー、無制限のトラフィック、3つのネットワークへの直接接続

serverfield からメールが届き、100Mbps (共有) の無制限トラフィックを備えた台湾...

Weiboプロモーションを活用して人気を高める方法

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスSEO担当者として、ウェ...

ロシアのホスティングプロバイダー:Hostlandの紹介、無制限のトラフィックVPS

hostland.ru は、10 年以上の運営歴を持つ老舗ホスティング会社です。ロシア市場では比較的...

悟空Q&Aが終了:バイトダンス初の敗北

「戦略的に放棄された」 Wukong Q&Aは、ByteDanceのアプリ陣営から撤退しよう...