Search API Synonym
編集者や管理者がDrupal内で検索シノニム(同義語)やスペル修正を直接管理できるようにし、インポート/エクスポート機能もサポートします。
search_api_synonym
インストール
composer require 'drupal/search_api_synonym:^2.0'
概要
Search API Synonymは、Drupal内で検索シノニムとスペルエラー修正を管理するための包括的なソリューションを提供します。このモジュールはシノニム定義を保存するためのカスタムコンテンツEntityタイプを作成し、Apache Solrなどの検索バックエンドで使用できます。
管理者は、単語を関連するシノニムに関連付けたり、一般的なスペルエラーを修正するシノニムエントリを作成できます。このモジュールは、管理インターフェースを通じた手動入力と、Solr synonyms.txt、CSV、JSONなど複数のフォーマットの外部ファイルからの一括インポートの両方をサポートしています。
エクスポートされたシノニムファイルは、Drushコマンド、Drupal Consoleコマンド、または自動cronジョブで生成できます。Solrエクスポート形式はApache Solrのsynonyms.txt設定と互換性があり、検索インフラストラクチャへのシノニムのデプロイが容易です。
Features
- 単語、シノニム、タイプ(シノニムまたはスペルエラー)、言語、有効状態のフィールドを持つカスタムSynonym Entityタイプ
- Viewsベースの一覧表示、単語・シノニム・タイプ・状態・言語によるフィルタリングを備えた管理インターフェース
- 複数のファイル形式をサポートするインポート機能:Solr synonyms.txt、設定可能な区切り文字を使用したCSV、JSON
- 言語別ファイルをサポートするSolr互換synonyms.txt形式へのエクスポート機能
- コマンドラインでのシノニムエクスポート用Drushコマンド(search-api-synonym:export)
- エクスポート用Drupal Consoleコマンド(searchapi:synonym:export)
- 設定可能な間隔と増分エクスポートオプションを備えたcronベースの自動エクスポート
- スペースあり・なしのシノニムをサポートし、別々のファイルにエクスポート可能
- 包括的なフィールド、フィルター、ソートハンドラーを備えたViews統合
- 言語ごとのシノニム定義を持つ多言語サポート
- 開発者がカスタムインポート・エクスポート形式を追加できるプラグインシステム
- シノニムファイルが保存されたときに反応するためのhook(hook_search_api_synonym_synonyms_file_saved)
Use Cases
ECサイトの商品検索強化
商品カテゴリや一般的な用語のシノニムを作成します。例えば、「ノートパソコン」を「ラップトップ」「ノートPC」「携帯型パソコン」と同義語にできます。これにより、顧客が使用する特定の用語に関係なく商品を見つけられるようになります。
スペルエラー修正
検索中に修正すべき一般的な誤字を定義します。例えば、「recieve」=> 「receive」や「accomodation」=> 「accommodation」。スペルエラータイプは置換マッピングを使用するため、誤った綴りで検索すると正しい綴りの結果が返されます。
多言語シノニム管理
多言語サイトでは、言語固有のシノニムセットを作成します。ドイツ語のシノニムは英語とは別に管理でき、各言語は適切なSolrコアまたはコレクション用の独自のシノニムファイルにエクスポートされます。
技術ドキュメント検索
技術ドキュメントサイトでは、略語と正式名称のシノニムを作成します。例えば、「API」を「Application Programming Interface」と同義語にしたり、「REST」を「Representational State Transfer」と同義語にできます。
自動Solrデプロイメント
cronベースのエクスポートを設定して、更新されたシノニムファイルを自動的に生成します。hook_search_api_synonym_synonyms_file_saved hookを使用して、変更が検出されたときに自動的にSolrサーバーにファイルをデプロイします。
既存システムからの一括シノニムインポート
インポート機能を使用して、既存のSolr synonyms.txtファイル、別のシステムからのCSVエクスポート、またはシノニムデータベースからのJSONファイルからシノニムを移行します。マージオプションにより、インポートしたシノニムを既存のエントリと結合できます。
Tips
- 単一単語と複数単語のシノニムの両方がある場合、Solrにエクスポートする際は「ファイルを分離」オプションを使用してください。トークナイザーの設定によって、Solrはこれらを異なる方法で処理する場合があります。
- 大規模なシノニムセットの場合、「変更がある場合のみエクスポート」オプションを使用して、cron実行中の不要なファイル再生成を回避してください。
- CSVからインポートする際、シノニム値にカンマが含まれている場合は、解析の問題を避けるために区切り文字としてセミコロンを使用してください。
- hook_search_api_synonym_synonyms_file_saved hookは、デプロイメントパイプラインと統合してリモートSolrサーバーにシノニムファイルを自動的にプッシュするのに最適です。
- Drushコマンドで増分エクスポートオプションを使用すると、最近の変更のみをチェックする場合にエクスポートが高速化されます。
- 双方向のシノニムが必要な場合は、各方向に別々のシノニムエントリを作成することを検討してください。Solr形式では各行が独自のマッピングとして扱われます。
Technical Details
Admin Pages 6
/admin/config/search/search-api-synonyms
検索シノニムを管理するためのメイン管理ページ。すべてのシノニムを一覧表示するViewsベースのテーブルを表示し、単語、シノニム、タイプ、言語、作成者、状態、最終更新日の列があります。一覧の検索とフィルタリングのための公開フィルターを含みます。
/admin/config/search/search-api-synonyms/add
新しいシノニムエントリを作成するフォーム。単語、そのシノニム、タイプ(シノニムまたはスペルエラー)、言語、有効状態を指定できます。
/admin/config/search/search-api-synonyms/{search_api_synonym}/edit
既存のシノニムエントリを編集するフォーム。追加フォームと同じフィールドがあります。
/admin/config/search/search-api-synonyms/settings
cronベースのシノニム自動エクスポートを設定します。エクスポートの実行頻度、使用するプラグイン形式、フィルタリングオプションを制御します。
/admin/config/search/search-api-synonyms/import
外部ファイルからシノニムを一括インポートするフォーム。複数のファイル形式をサポートし、既存のシノニムの処理オプションを提供します。
/admin/config/search/search-api-synonyms/delete-all
すべてのシノニムエントリを削除するための確認フォーム。この操作は取り消せません。
権限 4
Hooks 1
hook_search_api_synonym_synonyms_file_saved
エクスポート中にシノニムファイルが保存された後に呼び出されます。モジュールがファイルの変更に反応できるようにします。例えば、検索サーバーにファイルをデプロイする場合などです。
Drush Commands 1
drush search-api-synonym:export
検索シノニムを指定された形式のファイルにエクスポートします。言語、タイプ、単語のスペースによるフィルタリングをサポートします。
Troubleshooting 5
エクスポートディレクトリが存在し、書き込み可能であることを確認してください。/admin/config/search/search-api-synonyms/settingsの「ファイルエクスポート先」設定を確認してください。デフォルトの場所は'public://synonyms'です。Webサーバーがこのディレクトリへの書き込み権限を持っていることを確認してください。
「シノニムをエクスポートする間隔」設定が「しない」に設定されていないことを確認してください。サイトでcronが実行されていることを確認してください。「変更がある場合のみエクスポート」を使用している場合は、前回のエクスポート以降に実際に新規または変更されたシノニムがあることを確認してください。
ファイル拡張子が選択したインポートプラグインと一致していることを確認してください(Solrはtxt、CSVはcsv/txt、JSONはjson)。ファイルが大きい場合は、PHPのアップロード制限(upload_max_filesize、post_max_size)を確認してください。
シノニムが「有効」としてマークされていることを確認してください。シノニムファイルをエクスポートし、期待されるエントリが含まれていることを確認してください。エクスポートしたファイルをSolr設定にデプロイし、Solrコア/コレクションをリロードしてください。
スペルエラーは置換マッピング形式(誤字 => 正しい単語)を使用します。Solrスキーマが適切なアナライザーチェーン(通常はクエリアナライザー)でシノニムファイルを使用するように設定されていることを確認してください。
Security Notes 3
- インポート機能はファイルのアップロードを許可します - 「import search api synonyms」権限は信頼できるユーザーにのみ付与してください。
- モジュールは、選択したプラグインに基づいてインポート中のファイル拡張子を検証し、許可されていないファイルタイプのアップロードを防止します。
- エクスポートされたシノニムファイルはデフォルトでパブリックファイルディレクトリに保存されます - シノニムデータが公開アクセス可能であるべきでない場合は、プライベートディレクトリの使用を検討してください。