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

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

内部リンクの重要性を説明する必要はありません。誰もが知っているはずです。内部リンク(および外部リンク)の関連性は非常に重要な指標です。この記事では、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グループを利用したプロモーションスキルについての簡単な説明

推薦する

クラウドストレージのスケーラビリティの利点と限界

ビッグデータの時代では、データストレージが最優先事項となっています。個人ユーザーも企業ユーザーも、デ...

hosteons: カスタマイズされたクーポンコード - 無料の 10Gbps 帯域幅アップグレード、およびロサンゼルスの 10Gbps 帯域幅 VPS の簡単なレビュー

Hosteons は数年の歴史があり、ロサンゼルス、ニューヨーク、ジャクソンビル、ラスベガスの 4 ...

動的 URL と SEO ランキング

動的 URL とは、疑問符を含む URL を指します。特にルールはなく、見た目も非常に乱雑です。もち...

Baidu の重さには注意し、その「重さ」に惑わされないでください

多くのウェブマスターは、ウェブサイト全体を重みで扱うことを好みます。重みが高ければ、ウェブマスターは...

5月4日運動からSEO最適化担当者が持つべき精神まで

五四運動は、人々の心に永遠に残る愛国運動であり、記念すべき日でもあります。五四運動は、誠実、進歩、積...

クラウドコンピューティングアプリケーションの現状と主要技術

クラウド コンピューティングは、インターネットの存在に基づいて動的にスケーラブルな仮想化リソースを通...

#BlackFriday# 契約: 月額 30 元、KVM/8G メモリ/4 コア/300G ハードディスク/無制限トラフィック、古いドイツのデータセンター

ドイツの老舗データセンターであるコンタボのブラックフライデープロモーションはかなり特別です。コンタボ...

クラウドコンピューティングのワークロードを保護する方法

組織は、効率性の向上やコンピューティング リソースの割り当てなど、さまざまな理由で複数のクラウド プ...

webhosting24: 年間 28 ユーロ、日本 1Gbps 帯域幅の高性能 VPS、AMD Ryzen 9 3900X+NVMe

webhosting24は、7月1日から日本のデータセンターのVPSをNVMeにアップグレードし、ハ...

2015 年の最新の Google Admob チャンネル プロモーション戦略

統計によると、Androidを例にとると、中国の平均的なAndroidユーザーは現在50個のアプリを...

要約: 内部リンク構築の 5 つの側面

フォーラムやウェブマスターのウェブサイトでは、良いウェブサイトを構築するには、まず良い内部リンクを構...

Linode - 試して 10 ドルゲット!

Linode.com、最近は簡単ではないようですね。もちろん、過去と比べての話です。最近、新規ユーザ...

新ブランドのための戦略的マーケティングの 5 つのステップ

彼女はどうやって、新しいブランドのワインを 0 から 3 億 5000 万ドルまで売ったのでしょうか...

SaaS の将来は人工知能とどのような関係があるのでしょうか?

人工知能は人気が高まっており、つい最近までは単なる新興トレンドに過ぎませんでしたが、現在ではこの技術...