Azure Cognitive Searchのサポート リファレンス

Version: 10.1
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

注意

Azure Cognitive Searchは将来廃止され、Sitecoreは将来のリリースでこのサービスのサポートを提供しなくなります。

このトピックでは、クエリのサポートやファセットのサポートなど、Azure Cognitive Searchのさまざまな種類のサポートについて説明します。 「チュートリアル: Azure Cognitive Searchの構成」 をこのリファレンス トピックと組み合わせて使用します。

クエリのサポート

Sitecore Azure Searchは、LINQからMicrosoft Azure Cognitive Search APIでサポートされているクエリへのマッピング機能を提供します。

現時点では、Azure Cognitive Searchサービスでは、LuceneとODataの2種類のクエリ構文がサポートされています。

Luceneクエリ構文は、次の目的で使用されます。

  • フィールド スコープのクエリ

  • 正規表現検索

  • ワイルドカード検索

ODataクエリ構文:

  • 検索できないデータ型 ( intdateTime, など) のシナリオをフィルター処理できます。

  • 比較に使用されます。

  • コレクション内に含まれています。

  • 単項演算子を使用します。

Sitecore Azure Searchプロバイダーは、Luceneで利用可能なほとんどのクエリ シナリオをカバーしていますが、最も一般的に使用されるものは次のとおりです。

Query scenario

Example

フィールドスコープ検索

RequestResponse
from d in queryable where d.Name.Contains("Sitecore") select d 
from d in queryable where d.Name.Like("Sample Item") select d 
from d in queryable where d.Name == "Sample Item" select d 
from d in queryable where d.Name.Matches("Sample.*") select d

論理演算子

( &OrNotBetweenを含む)

RequestResponse
from d in queryable where d.Name.Contains("Sitecore") && d.Price > 100 select d 
from d in queryable where d.Price.Between(1000, 2000, Inclusion.Both)select d 

順序

RequestResponse
from d in queryable where d.Name.Like("Sample Item") orderby d.Id select d 

高める

RequestResponse
from d in queryable where d.Name.Like("Sample").Boost(2f) || d.Template.Like("Sample") select d 

コレクション内の検索

RequestResponse
from d in queryable where d.TemplateIds.Contains(Sitecore.TemplateIDs.Layout) select d 
大事な

StartsWith, ContainsなどのクエリをEDMタイプのフィールドに適用しないでくださいパス (/sitecore/content/homeなど) またはGUIDのコレクションを含む文字列。これは、Azure Cognitive Searchが正規表現検索を1つの単語に一致させるためです。

現在サポートされていない機能は次のとおりです。

  • 結合 ( GroupJoinJoinSelfJoin.

  • Lucene構文とOData構文の両方の述語が結合されているか、オペランドであるクエリ (例:

    RequestResponse
    from d in queryable where d.Name.Contains("Sitecore") || (d.Price > 1000) select d) 
    

ファセットのサポート

Sitecore Azure Searchは、コンテンツ検索ファセットAPIからMicrosoft Azure Cognitive Search APIでサポートされているクエリへのマッピング機能を提供します。

現在サポートされている機能は次のとおりです。

Feature

Example

ファセットの構築

queryable.FacetOn(x => x.Country).GetFacets()

1つの要求でファセットを構築する

queryable.FacetOn(x => x.Country).FacetOn(x => x.Brend).FacetOn(x => x.Price).GetFacets()

ファセットに値をフィルタリングする

queryable.FacetOn(x => x.Country, null, new {"Denmark", "Germany"}).GetFacets()

ドキュメントの最小数で用語を除外する

queryable.FacetOn(x => x.Country, 10).GetFacet()

クエリは、10を超えるドキュメントを含む用語を返します。

大事な

この機能はクライアント側でのみサポートされているため、パフォーマンスを向上させるために使用することはできません。

ファセット内の用語の数を制限する

プロバイダーは、デフォルトでファセットごとに10個の用語を返します。設定ファイルで制限を設定するには、/configuration/sitecore/contentSearch/configuration/indexes/index/ セクションにmaxTermsCountInFacetパラメータを追加します。

RequestResponse
<configuration>
    <sitecore search:require="azure">
        <contentSearch>
            <configuration>
                <indexes>
                    <index id="sitecore_sxa_web_index">
                        <maxTermsCountInFacet>50</maxTermsCountInFacet>
                    </index>
                </indexes>
            </configuration>
        </contentSearch>
    </sitecore>
</configuration>
メモ

現在、すべてのピボットファセットはサポートされていません。これらは要求から除外され、無視されます。

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、