search_api_dbの警告

Drupalの管理画面には便利な機能がいくつか搭載されています。その中で良く見るのがレポート/admin/reports機能でサイトの状態や最近のログなどを見る事が出来ます。この最近のログを見ると以下の警告が出ています。


Since database search servers currently cannot index words of more than 50 characters, the word was truncated for indexing. If this should not be a single word, make sure the "Tokenizer" processor is enabled and configured correctly for index Content.

データベース検索サーバーは現在、50文字以上の単語をインデックス化できないため、インデックス化のために単語が切り捨てられました。これが単一単語であってはならない場合は、「Tokenizer」プロセッサが有効になっており、インデックス・コンテンツ用に正しく設定されていることを確認してください。


閲覧したすべてのWEBサイトのページにこの警告が出ています。。。

なんのエラーかを調べて見ると、search_apiの設定がされていないようです。そもそもsearch_apiが何故必要かの理由に、私が使用しているCivic Themeの検索にこのsearch_apiが使用されています。Civic Themeインストールの際、このsearch_apiがインストールされていませんとエラーが出た理由がこの時初めて理解出来ました。

そもそもこのsearch_apiとは何かが理解出来ていないので調べてみます。Drupalには標準でSerchモジュールという検索機能を実装しているのですが、機能を拡張するためにsearch_apiというモジュールが用意されています。標準の検索に比べて、設定や利用法の幅が広く色々な検索を利用できます。

今回の警告はこのsearch_apiの設定にある「Tokenizer」の設定がされていない為に出ている警告です。search_apiのDBにサイト内の記事などの情報をインデックス化(DBへの登録)する際、記事がそのままインデックス化されてしまう為出ている警告で、この「Tokenizer」は記事を単語にバラしてインデックス化する機能になっています。

search-apiの設定/admin/config/search/search-api
はデータベースとインデックスの設定をする必要があります。


  • データベースのビュー

状態    enabled (disable)
Backend class    データベース
Search indexes    Content
データベース    default > default
Minimum word length    3
Partial matching    Match whole words only
Phrase indexing    Bigram
Autocomplete suggestions    Suggest word endings; Suggest additional words

  • インデックスのビュー

状態    enabled (disable)
データソース    コンテンツ (36/36 indexed)
トラッカー    デフォルト
サーバー    Database
サーバーのインデックス状況    サーバーではこのインデックス用に 36 個のアイテムがインデックスされています。(詳しい情報)
Cron batch size    During cron runs, 50 items will be indexed per batch.


今回警告を解除することが目的なので
インデックスのプロセッサーの設定にある。

Tokenizer
Splits text into individual words for searching.
にチェックを入れます。

設定を保存します。

これで設定は完了しますのでログを確認します。ログの確認の際、WEBサイトのページをいくつか閲覧してみます。すべてページ閲覧のログが表示されます。

今回の警告は消えたのですが、別のメッセージが出ています。


メッセージ    search_api_cron()の実行を開始、search_cron()の実行には61.82msかかりました。

Below is a list of indexes grouped by the server they are associated with. A server is the definition of the actual indexing, querying and storage engine (for example, an Apache Solr server, the database, …). An index defines the indexed content (for example, all content and all comments on "Article" posts).
The default Drupal core Search module is still enabled. If you are using Search API, you probably want to uninstall the Search module for performance reasons. For more information see the Search API handbook.

以下は、インデックスが関連付けられているサーバごとにグループ化されたインデックス一覧です。サーバとは、実際のインデックス作成、クエリ、保存エンジン(例えば、Apache Solrサーバ、データベースなど)の定義です。インデックスはインデックスされるコンテンツを定義します(例えば、「記事 」投稿のすべてのコンテンツとすべてのコメント)。
デフォルトのDrupalコアSearchモジュールは有効のままです。Search API を使用している場合、パフォーマンス上の理由から Search モジュールをアンインストールした方が良いでしょう。詳しくはSearch APIハンドブックを参照してください。


Search API を使用する場合DrupalコアSearchモジュールをアンインストールした方が良いとのメッセージが出ていたので、アンインストールします。

機能拡張のアンインストール /admin/modules/uninstallからSearchモジュールをアンインストールします。ログを確認すると、先ほどの警告が消えました。

Searchを使ってみる

今回、Search APIの設定をしてみたので、Search機能を使ってみます。本来Search APIのページの設定やViewsの設定を行うのですが、Civic ThemeがデフォルトでSearch機能を持っていますのでこれをそのまま使います。

一番簡単な使い方ですが、メニューに"Search"を追加してURLの設定を"/search"にします。これでSearch機能が使えるようになります。

実際に検索をかけると、機能は優秀でしっかりタイトルや記事から検索項目を拾い表示してくれます。検索自体はシングルワードで、ANDやORの機能はついていませんが、簡単なワードで該当するページを検索して表示してくれますので結構便利な機能になっています。

私の小規模なWEBサイトなので、サイト内検索は当面必要ないかなと考え、検索機能について深く考えていなかったのですが、記事が多くなってきた時に閲覧された方が記事を探すのに有効な機能ですので今後もう少し機能を調べ設定していけたらと考えています。

 

search_api_dbの警告は無事解決できました。

Drupalの優れた機能に管理画面に様々な機能が搭載されており、このログ機能とログ機能のエラーや警告は非常に参考になります。ヘルプ機能で解決策を提案してくれていたりして初心者でも理解しやすく対応できるのでエンジニアではない方もログを見る癖をつけるとDrupalの機能や構成が良く理解できると思います。理解が難しいエラーや警告が出たりすると調べて対応するのが大変ですが大半は利用方法に問題があるケースですので放置せずしっかり対応して行きたいと考えています。

次項は、Webサイトの公開後、どのようなアクセスが来ているかを知るアクセス解析のツールを設定して行きます。

Drupalの記事

関連するDrupalでWEBサイトを構築する為の環境構築の記事やDrupalについて書いた記事になります。

記事は全てナンバリングしています。Drupalを初めて使う為の準備から始まる最初の記事から読む事もできます。

環境構築

DrupalやCivic Themeの設定やインストール、Local環境の構築やサーバーへのインストールなど環境構築やエラーの対応に関わる記事をまとめています。
  • Drupal記事まとめ
  • 環境構築

Drupal記事

Drupalについて記事を書いています。このWEBサイトを構築していく上でのトピックになります。プログラミングやソースコードなどエンジニア的な記事ではなく、プログラミング経験がない個人がDrupalでパーソナルなWEBサイトを構築するという観点での記事になります。
  • Drupal記事まとめ

最新の記事

Drupalについて書いた最新の記事になります。

#D32 Drupal 10.4.0

Drupal Coreが10.3xから10.4xにアップデートされましたので当サイトも早速アップデートします。
  • Civic Theme
  • Drupalの記事

#D31 Civic Theme Sub Theme

Node.jsのバージョン制限の問題でインストールしていなかったサブテーマをインストールして、サブテーマでの運営に切り替えます。
  • Drupalの記事
  • Civic Theme

#D30 Civic Theme 1.9.0 UpDate

Civic Themeのアップデートの通知が来ていましたので1.8.2から1.9.0にアップデートしました。3月程度のブランクながら1.8x > 1.9xなので様子をみようと考えたのですが、改善点も多いので早速アップデートを行いました。
  • Drupalの記事
  • Civic Theme

#D29 Drupal Core Update

前記事で、10.3.4 > 10.3.5のアップデート行う際にアップデートの内容を確認しました。Gitlabで変更内容のコードを確認する事で、変更内容をより詳しく理解することが可能です。今回10.33 > 10.3.4のアップデートの内容を確認します。
  • Drupalの記事
  • 環境構築

Life Styleの記事

Drupalとは関係ないのですがLife Styleの記事も書いていますのでよろしければ購読ください。

Life Style記事

ライフスタイルの記事になります。Drupalに触れる目的でこのWEBサイトを立ち上げています。元はWord Pressで作成した記事をこちらのWEBサイトに再構築しています。Word Pressも学習目的で利用したのですが記事をしっかり作る事を目的としていたので、テーマに興味があればそれなりに楽しめると思います。
  • Life Style記事まとめ
  • Drupalの記事
  • 環境構築