search_api_solrを使用して、solr 6.xを使用するときに、フィールドベースの重要なブーストを適用するにはどうすればよいですか?
drupal 8サイトでsearch_apiにsolrバックエンドを使用しています。 分類基準の参照フィールド()の値をfield_promoted_searchインデックスに追加しました。 コンテンツのアイテムにfield_promoted_search検索用語と一致する値がある場合、大幅にブースト(^ 1000など)して、検索結果の上部にプッシュします。 admin/config/search/search-api/index/content/fieldsサーバーがsolr <6を使用しているときに期待どおりに高い「ブースト」値を追加すると、6.1.0に移行したため、これは期待どおりに機能しません。search_api_solr /サンが使用しているためと考えられる乗法ブーストではなく、添加物を。これは私にとってはあまり有益ではないように思われます。これは、特権だけではなく、他の分野で達成された関連性を増大させるためfield_promoted_searchです。 を使用して、この昇格された検索フィールドのブーストクエリをソラリウムクエリに追加してみましたhook_search_api_solr_query_alter。これには、各検索キーをブーストされたクエリとして渡す必要があり、効果はキーの順序によって影響を受けるようです(また、結果が上位になりません)。 $keys = $query->getKeys(); unset($keys['#conjunction']); // Boost results where search term matches promoted search field. $boost_keys = []; $boost_value = 1000; foreach ($keys as $key) { $boost_keys[] = '"' . $key . '"^' . $boost_value; } $solarium_query->getEDisMax()->setBoostQuery('ss_promoted_search:' . implode(' OR ', $boost_keys)); …