web-dev-qa-db-ja.com

コア検索モジュールによって特定のフィールドのインデックスが作成されないようにするには、どうすればよいですか。

コンテンツタイプに追加のテキストフィールドがある場合、検索コアはnode_view()の結果からすべてのテキストを抽出するため、検索コアはそれらに自動的にインデックスを付けます

MODULE_node_update_index( $node )を使用して、インデックスデータを簡単に追加できます。この特定のフック引数、$nodeは、参照ではなく値で渡されます。つまり、特定の項目の設定を解除できません。

node_view、そこで変更しますが、インデックスが作成されている場合にのみ、ノードの出力を通常は変更しません。

3
Chris

各コンテンツタイプ(例:admin/structure/types/manage/page/display)のManage Displayページに移動します。

カスタム表示設定のタブをクリックします。

システムが認識している表示モードが表示されます。 検索インデックスにチェックを入れて保存します。

新しい表示モード(例:admin/structure/types/manage/page/display/search_index)のタブからインデックスを作成するフィールドを設定できるようになりました。

構成->検索->検索設定(admin/config/search/settings)から検索インデックスをダンプすると、cronの実行によりすべてのインデックスが再作成されます。または、コマンドラインから_drush -y search-reindex; drush -y search-index_を実行します。

node_update_index() から呼び出される search_cron() から読み取りを開始すると、最終的にnode_view($node, 'search_index');が表示されます。これは、その表示モードが使用される方法です。

11
mpdonadio