web-dev-qa-db-ja.com

分類の重みで検索インデックスに基づいてビューを並べ替えることができません

検索APIを使用して作成された検索インデックスがあり、検索インデックスに基づいてビューが作成されています。インデックスが付けられたサブスクリプションと呼ばれる分類用語フィールドがあります。サブスクリプションフィールドに基づいてビューを並べ替える必要があり、用語名ではなく、分類用語の重みに基づいている必要があります。並べ替え条件にサブスクリプションフィールドを追加できますが、期待どおりに動作していないようです。

複数のリンクを参照しましたが、それらはコンテンツに基づくビューでのみ機能し、検索インデックスに基づくビューでは機能しないようです。

(検索インデックスに基づいて)ビューを分類用語の重みでソートするにはどうすればよいですか?

1
Bhuvana

あなたがまだこれを理解しているかどうかはわかりませんが、私はこれに対する解決策を見つけたので、このページに誰かが来た場合に備えて、ここに投稿します。

検索インデックスに移動して[フィールド]タブに移動すると、一番下に「関連フィールドを追加してください」というテキストが表示されます。これが目立たず、フォームの送信ボタンの下にあるので、これを見るのにしばらく時間がかかりました。しかし、それをクリックして分類法を選択すると、インデックス付けするフィールドの利用可能なリストに分類法フィールドのセットが追加されます。 「重量」をチェックすると、それがビューで使用可能になります。

2
Pamela

さて、私のアプローチを説明しようと思います。

Sortsモジュールは使用しませんでした。私が取った手順は次のとおりです。

このフックを使用してカスタムフィールドを作成しました:別のモジュールでhook_entity_property_info_alter()。ゲッターコールバックで、必要な用語の重みを見つけて、次のようにINTEGERとして返しました。return intval($ weight);新しく作成したフィールドにチェックマークを付けてインデックスを付け、フォーマットとして整数を選択しました。インデックスのインデックスを再作成しました。最後に、ソート基準の私の見解では、昇順ソートと出来上がりを選択しました!!

0
geodoo