Azure Search は DisMax クエリをサポートしていません。DisMax クエリに必要なものによっては、他の方法で同様の結果を取得できる場合があります。
リコールの観点からは、DisMax クエリはブールクエリと同じであり、論理和についてはどちらも同じ条件下でドキュメントを一致と見なします。違いは、DisMax が最高の個々の一致 (およびオプションのタイ ブレーカー) を取得することによって結果の一致にスコアを付け、ブールクエリがデフォルトでスコアを合計することです。
DisMax に必要なのは、引用符、+/- などを使用した単純な構文である場合、queryType=simple (既定) を使用すると、"~" (ファジー/スロップ) を除いて、Azure Search でそのほとんどが得られます。 .
あなたが必要としているのが、一致を記録するための実際の選言最大の方法である場合、それは今日では実行できません。
あなたが言及する他の機能については:
- クエリ フィールド: Azure Search クエリには、それを行う "searchFields" オプションがあります。
- フレーズ フィールド: 個々の用語と引用符で囲まれた用語のグループをクエリし、さまざまなブーストを使用することで、これを手動で (面倒ではありますが) 実現できます (これには完全な lucene クエリを使用する必要があります。単純なクエリではうまくいきません。個々の用語/グループブースティングの)。
- ブースト関数/クエリ: Azure Search ではこれに 1 対 1 で対応するものはありませんが、スコアリング プロファイルを使用すると、これを使用してモデル化する多くのシナリオをモデル化できます。
searchFields およびその他のクエリ オプションの詳細:
https://docs.microsoft.com/en-us/rest/api/searchservice/search-documents
スコアリング プロファイルの詳細:
https://docs.microsoft.com/en-us/rest/api/searchservice/add-scoring-profiles-to-a-search-index