Sitecore Azure Search の概要

Current version: 10.1
注意

Azure Cognitive Search は将来的に廃止され、Sitecore では今後のリリースでこのサービスのサポートを終了する予定です。

Sitecore Azure Search プロバイダーは、Sitecore Search エンジンと Microsoft Azure Cognitive Search サービスを統合します。Microsoft Azure Cognitive Search サービスは Microsoft Azure コンピューティング プラットフォームの一部であり、Microsoft の Web サイトで詳細をご確認いただけます。このトピックは、Sitecore Experience Platform 8.2 Update-1 以降に適用され、Azure Cognitive Searchの機能と制限、およびサポートされていない Azure Cognitive Search の機能について説明します。

Azure Cognitive Search の機能

Microsoft Azure Cognitive Search サービスは、次のような特長を提供します。

  • 卓越したスケーラビリティ、シンプルさ、および安定性。

  • Microsoft Azureのサービス レベル契約 (SLA) の一部として、99.95% の稼働率を持つ高可用性インフラストラクチャを実現。

  • 必要に応じて容易なスケール アップおよびスケール ダウンが可能

Sitecore Azure Search プロバイダーには、次の機能が含まれています。

  • ユーザー入力のクエリやファセット検索など、すべての Sitecore 検索駆動型 UI をサポートします。

  • LINQ 式の大部分をサポートしており、検索を利用したアプリケーションの迅速な開発を可能にします。

  • ファセットや範囲クエリで、数値や日付などの基本的なデータ型をネイティブでサポートします。

  • インデックスのスキーマに対して、柔軟な設定と正確な制御を行います。

  • Geo レプリケーションのシナリオで、Sitecore の実行をサポートします。

  • 空間検索をサポートします。

注記

Sitecore Azure Search は、Lucene および Solr 検索プロバイダーとは少し異なる動作をします。この点は、検索プロバイダーを切り替える場合に考慮することが重要です。Sitecore Azure Search の制限と動作の違いに関する詳細については、「Azure Search プロバイダーの制限」セクションを参照してください。

Sitecore Azure Search は Sitecore インスタンスのデフォルトプロバイダーであり、Sitecore Azure SDK を使用してデプロイされます。オンプレミスおよび IaaS でのデプロイをサポートしています。Sitecore Azure Search の設定については、「チュートリアル: Azure Cognitive Search の設定」を参照してください。

Azure Cognitive Search の制限

Solr 上の Sitecore Search と比較して、Azure Cognitive Search 上の Sitecore Search には、いくつかの制限があります。具体的な内容については、次の表を参照してください。

制限事項

説明

Azure Cognitive Search サービスによる、検索およびファセット時のドキュメント フィールド値とクエリの自動トークン化。

次の制限があります。

  • 部分文字列検索は、述語など単一の語句に制限され、.StartsWith().EndsWith()、および .Contains() は語句の一部に一致し、フィールド値の任意の部分にある語句に一致します。複数の語句が渡された場合は、各語句が個別に検索されます (これにより、予想よりも多くの結果が返される可能性があります)。

  • 複数の語句 (スペースを含む) にまたがる正規表現は、0 件の結果を返します。

  • .Wildcard() に複数の語句を渡すと、フィールドスコープ クエリで、個々のワイルドカードとして解釈されます。

  • 値に複数の単語が含まれている場合、ファセット値は、フィールド全体の値ではなく、ファセット フィールドの個々の語句に基づいて計算されます (Lucene および Solr とは異なります)。

注記

この制限は、Sitecore バージョン 8.2.7 および 9.0.1 以前にのみ適用されます。それ以降のバージョンでは、特定のフィールドに小文字アナライザーを適用することで動作を変更できます。次に例を示します。

RequestResponse

<fieldNames hint="raw:AddFieldByFieldName"> <field fieldName="_fullpath"  cloudAnalyzer="lowercase_keyword" />…

フィールド

Azure Cognitive Search のインデックスには、最大 3000 個のフィールドを含めることができます。

Azure Cognitive Search インデックスで必要なフィールドの数は、カルチャ サポートに追加する言語数を乗じた数になります。以前は、Azure Cognitive Search はインデックスあたり 1000 フィールドに制限されていました。フィールドが 3000 個に増加し、Sitecore のリリースでインデックス フィールド数が削減されたことで、Sitecore インデックスに保存できる言語の総数が増加しています。

ファジー クエリのセマンティクス

Azure Cognitive Search では、次のように異なります。

  • .Like(pattern, similarity) は、similarity パラメーターをダメラウ・レーベンシュタイン距離 (0 から 2 の間の値) として解釈します。これは、Lucene が Sitecore で similarity パラメーターを実装する方法とは異なります。

  • similarity および slop パラメーターは、Azure Cognitive Search Lucene の構文で組み合わせることはできません。つまり、.Like() などの複数語のファジー クエリは、常にスロップを持つフレーズ クエリとして解釈されます。

クエリの結合

.GroupJoin().SelfJoin() など、クエリを結合する演算子はサポートされておらず、エラーが発生します。

メディアのインデックス付け

この機能はサポートされていません。

範囲クエリ

常にフィルターとして表現されるため、文字列フィールドに対する範囲クエリは常にトークン化なしでフィールド値全体に対して機能し、大文字と小文字が区別されます。

同じ名前のフィールド

Azure Cognitive Search サービスには強力なスキーマが用意されており、たとえば、同じ名前でタイプが異なるフィールドが別々のドキュメントに存在することはできません。

サポートされていない Azure Cognitive Search の機能

Azure に存在し、現在 Sitecore プロバイダーでサポートされていない機能については、次のリストを参照してください。

  • 地理空間データ型

  • インデクサー

  • 提案

  • ハイライター

  • スコア順に並べ替え

Do you have some feedback for us?

If you have suggestions for improving this article,