WordPress に付属の検索ではある程度の内容を検索できますが、必ずしも満足のいく検索結果が得られない場合や、共同検索やあいまい検索がないため、正確なキーワードを指定しないと検索結果が得られない場合があります。さらに、WordPress に付属の検索は MysqL データベース クエリに大きく依存しているため、データベースが大きい場合は時間がかかる可能性があります。
WordPress のデフォルトの検索を置き換えるのは難しくありません。基本的に、site:wzfou.com xxx が指定された Web サイトのコンテンツを検索できることは知っています。これは、site:wzfou を意味します。 com.com xxx はサイトに直接埋め込まれており、ユーザーは検索をクリックした後に Baidu や Google にジャンプすることなく結果を確認できます。
ただし、Baidu や Google カスタム検索は検索エンジンのインデックスに依存しているため、インデックスが少ない新しいサイトでは新しい記事を検索できない場合があり、ユーザー エクスペリエンスに影響します。その結果、オープンソースで無料の自作検索エンジンである Elasticsearch が誕生しました。これは、全文検索と構造化データのリアルタイム統計を処理できる、分散型でスケーラブルなリアルタイム検索およびデータ分析エンジンです。 。
この記事では、Baidu、Google カスタム検索、Elasticsearch が WordPress を統合する方法について説明します。WordPress ウェブサイト構築と WP 最適化に関するその他の記事は次のとおりです。
- Linux php-fpm 最適化体験 - php-fpm プロセスは大量のメモリを消費し、メモリの問題を解決しない
- WordPress が Alipay、WeChat 報酬ボタンの制作例と Paypal.me 報酬リンクを追加
- 優秀なRSSリーダーおすすめ5選 - 国内外の主要なRSSリーダーを集めました
追記: 2019 年 9 月 1 日更新、 Baidu や Google のカスタム検索に煩わされたくない友人は、この優れたサードパーティのオンサイト検索エンジンを試すことができます。Algolia を使用してリアルタイムを追加します。 -WordPress-Search へのサイト検索機能 より高品質でより正確なコンテンツ。
追記: 2019 年 12 月 2 日に更新されました。 より強力で高速な無料のオンサイト検索を構築したい場合は、
1. Baidu オンサイト検索エンジン
Webサイト:
- HTTPS://resource.baidu.com/color/wiki/introduce
1.1 Baidu オンサイト検索エンジンの使用
最初のステップは、使用する Web サイトのドメイン名を Baidu 検索エンジンに追加することです。
2.1 Google カスタム検索の使用
まず、公式の Google カスタム検索ページにログインし、クリックして新しいカスタム検索を作成します。
次のステップでは、インデックスを作成する URL や名前などを設定します。 (拡大するにはクリックしてください)
作成したら、クリックしてコードを取得できます。
Google オンサイト検索では、外観設定、検索結果の最適化、その他の機能も提供しており、ニーズに応じて調整できます。 (拡大するにはクリックしてください)
Google カスタム検索を使用すると、特定の検索結果、オートコンプリート、同義語などをピン留めできます。
これは、Google のカスタム検索の検索効果です。Web ページに埋め込むと、元の CSS の影響を受ける可能性があるため、自分でさらに微調整する必要があります。 (拡大するにはクリックしてください)
Google カスタム検索は画像も検索でき、非常に強力です。
2.2 Google カスタム検索で問題が表示されない
よく知られた理由により、中国では Google カスタム検索が適切に表示されません。この問題を解決するにはどうすればよいですか?実現可能な方法は、逆生成 (Nginx 逆バインディングを参照) を使用するか、Google カスタム検索関連ファイルをローカライズすることです。実装は難しいですね…
Google カスタム検索は実際にホストすることができ、次のような効果があります。
- HTTPS://color.Google.com/color/public URL?Appearance=011545314673148308753:3 6-KFC を破壊できません
3. Elasticsearch の自作検索
Webサイト:
- HTTPS://wuwuwu.elastic.co
3.1 Elasticsearch をインストールする
Elasticsearch のインストールについては、基本的に公式チュートリアルを参照してください。imququ.com のインストール方法については、次のとおりです。
仮想マシン、オンライン環境ともにUbuntu 14.04.4 LTS、Elasticsearchは最新版を使用しています。すべてを開始する前に、まず Java 環境がマシンにインストールされているかどうかを確認してください。インストールされていない場合は、次のコマンドを使用してインストールできます。
sudo apt-get install openjdk-7-jre-headless
Elasticsearch 2.3.0 圧縮パッケージをダウンロードして解凍します。
wget -c https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/zip/elasticsearch/2.3.0/elasticsearch-2.3.0.zip unzip elasticsearch-2.3.0.zip
解凍した elasticsearch-2.3.0
ディレクトリの名前を ~/es_root
に変更します (名前と場所に制限はありません。適切と思われる任意の場所に移動できます)。 Elasticsearch はインストールを必要とせず、直接実行できます (注: root アカウントでは実行できません)。
BASHcd ~/es_root/bin/ chmod a+x elasticsearch ./elasticsearch
画面にエラー メッセージが表示されなければ、Elasticsearch サービスは正常に開始されています。新しいターミナルを作成し、curl を使用して確認します。
BASHcurl -XGET http://127.0.0.1:9200/?pretty { "name" : "Melissa Gold", "cluster_name" : "elasticsearch", "version" : { "number" : "2.3.0", "build_hash" : "8371be8d5fe5df7fb9c0516c474d77b9feddd888", "build_timestamp" : "2016-03-29T07:54:48Z", "build_snapshot" : false, "lucene_version" : "5.5.0" }, "tagline" : "You Know, for Search" }
上記の情報が表示されている場合は正常です。それ以外の場合は、画面のエラー メッセージに従って原因を特定してください。 Elasticsearch 自体は Java で書かれていますが、RESTful インターフェイスを通じて外部とやり取りできるため、非常に便利です。
デフォルトでは、Elasticsearch の RESTful サービスにはローカル マシンからのみアクセスできます。つまり、仮想マシン内のサービスにはホストからアクセスできません。デバッグを容易にするために、~/es_root/config/elasticsearch.yml
ファイルを変更し、次の 2 行を追加します。
network.bind_host: "0.0.0.0" network.publish_host: _non_loopback:ipv4_
ただし、オンライン環境では をこのように設定しないでください。設定しないと、誰でもこのインターフェースを通じてデータを変更できます。
3.2 IK 分析のインストール
Elasticsearch 検索に付属する単語セグメンターは、語彙に従って単語を分割せずに、各漢字を大まかに直接分割します。中国語の検索を処理するには、中国語の単語分割プラグインもインストールする必要があります。カスタム語彙をサポートする elasticsearch-analysis-ik を使用しています。
まず、Elasticsearch に一致する elasticsearch-analysis-ik プラグインをダウンロードします。
wget -c https://github.com/medcl/elasticsearch-analysis-ik/archive/v1.9.0.zip unzip v1.9.0.zip
解凍後、プラグインのソース コード ディレクトリに移動し、コンパイルします。
BASHsudo apt-get install maven cd elasticsearch-analysis-ik-1.9.0 mvn package
すべてがうまくいけば、コンパイルされたファイルは target/releases/
ディレクトリにあります。これを解凍し、~/es_root
の対応するディレクトリにコピーします。
mkdir -p ~/es_root/plugins/ik/ unzip target/releases/elasticsearch-analysis-ik-1.9.0.zip -d ~/es_root/plugins/ik/
elasticsearch-analysis-ik の設定ファイルは ~/es_root/plugins/ik/config/ik/
ディレクトリにあります。それらの多くはテキストで直接開くことで変更できます。エディタでは、必ず utf-8 形式で保存してください。
次に、Elasticsearch サービスを開始します。次のようなメッセージが表示された場合は、IK Analysis プラグインがインストールされていることを意味します。
plugins [analysis-ik]
3.3 シノニムの構成
Elasticsearch には、synonym と呼ばれる同義語フィルターが付属しています。 IK とシノニムを同時に機能させるには、新しいアナライザーを定義し、IK をトークナイザーとして使用し、シノニムをフィルターとして使用する必要があります。複雑そうに聞こえますが、実際に必要なのは設定セクションを追加することだけです。
~/es_root/config/elasticsearch.yml
ファイルを開き、次の設定を追加します。
YAMLindex: analysis: analyzer: ik_syno: type: custom tokenizer: ik_max_word filter: [my_synonym_filter] ik_syno_smart: type: custom tokenizer: ik_smart filter: [my_synonym_filter] filter: my_synonym_filter: type: synonym synonyms_path: analysis/synonym.txt
上記の設定では、2 つの新しいアナライザー ik_syno と ik_syno_smart が定義されており、これらはそれぞれ IK の ik_max_word と ik_smart のワード セグメンテーション戦略に対応します。 IK のドキュメントによると、この 2 つの違いは次のとおりです。
- ik_max_word: テキストを最も細かい粒度に分割し、可能な組み合わせをすべて網羅します。
- ik_smart: テキストを最も粗い粒度に分割します。
ik_syno と ik_syno_smart は両方とも、同義語フィルターを使用して同義語変換を実装します。後続のテストを容易にするために、~/es_root/config/analysis/synonym.txt
ファイルを作成し、いくつかの同義語を入力して utf-8 形式で保存することをお勧めします。例えば:
ua,user-agent,userAgent js,javascript 谷歌=>google
3.4 Elasticsearch は WordPress を統合します
WordPress プラグイン:
1. ElasticPress: https://wordpress.org/plugins/elasticpress/
2. Elasticsearch を使用した WP 検索: https://wordpress.org/plugins/db-search-with-elasticsearch/
これら 2 つの Elasticsearch WordPress プラグインは、Elasticsearch 検索を WordPress に統合するのに役立ちます。まず、プラグインを有効にしてから、プラグイン設定ページに移動して、Elasticsearch サーバー関連の情報を入力します。 (拡大するにはクリックしてください)
その後、WordPress の記事とページを Elasticsearch サーバーに同期し、インデックス作成を開始できます。
4. まとめ
Baidu オンサイト検索エンジンは、HTTPS を使用せず、Baidu インデックスが大きい Web サイトに適しています。HTTPS を使用する Web サイトでは、Baidu オンサイト検索エンジンを使用するのは非常に不利です。友達も国内の友達も大騒ぎするのはやめてください。
Elasticsearch の自己構築検索は、強力な機能を備えた非常に優れたツールです。WordPress の全文検索は、実際には「ちょっとしたテスト」であり、ドキュメントのインデックス作成、検索、並べ替え、フィルターを実行でき、複雑な全文検索を実行できます。 。