Azure Cognitive Searchのサポート参照
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
注意
Azure SearchはSitecore 10.0以降はサポートされていません。Sitecore 10.2は技術的にAzure Searchが使える最後のバージョンです。Azure Searchは後のバージョンではサポートされず、使用もできません。
このトピックでは、Azure Cognitive Searchのさまざまなサポートタイプ、クエリサポートやFacetサポートについて言及します。 Walkthrough: Configure Azure Cognitive Searchをこのリファレンストピックと組み合わせて活用してください。
クエリサポート
Sitecore Azure Search LINQからMicrosoft Azure認知Search APIがサポートするクエリへのマッピング機能を提供します。
現在、Azure Cognitive SearchサービスはLuceneとODataの2種類のクエリ構文をサポートしています。
Luceneクエリ構文は以下に使用されます:
- フィールドスコープクエリ
- 正則表現探索
- ワイルドカード検索
ODataクエリの構文:
- intやdateTime,など、検索できないデータ型でシナリオをフィルタリングできます。
- 比較に使われます。
- コレクションの中に含まれています。
- 単一演算子を使用します。
Sitecore Azure SearchプロバイダーはLuceneで利用可能なほとんどのクエリシナリオをカバーしており、以下は最もよく使われるものです:
- クエリシナリオ: 例
- フィールドスコープ検索:
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
- 論理演算子( &、 Or、 Not、 Betweenを含む):
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
- 注文:
from d in queryable where d.Name.Like("Sample Item") orderby d.Id select d
- ブースト:
from d in queryable where d.Name.Like("Sample").Boost(2f) || d.Template.Like("Sample") select d
- コレクション内での検索:
from d in queryable where d.TemplateIds.Contains(Sitecore.TemplateIDs.Layout) select d
!重要EDM型のフィールドにはStartsWith, Containsのようなクエリを適用してはいけません。/sitecore/content/homeのようなパスやGUIDの集合を含む文字列。これはAzure認知Search正則表現検索を単一の単語にマッチングするためです。
現在サポートされていない機能には以下が含まれます:
-
例えば、GroupJoin、Join、、SelfJoin.
-
LuceneとOData構文の両方の述語を持ち、結合またはオペランドであるクエリ、例えば:
from d in queryable where d.Name.Contains("Sitecore") || (d.Price > 1000) select d)
ファセットのサポート
Sitecore Azure Search、コンテンツSearch API側面からクエリへのマッピング機能を提供し、Microsoft Azure認知Search APIがサポートするクエリに至ります。
現在サポートされている機能は以下の通りです:
- 特徴: 例
- ビルドの側面: queryable.FacetOn(x => x.Country).GetFacets()
- 単一のリクエストでビルドの側面を: 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以上の文書を含む用語を返します。重要 この機能はクライアント側でのみサポートされているため、パフォーマンス向上のために使用できません。
- ファセット内の用語数を制限する。設定ファイル内の /configuration/sitecore/contentSearch/configuration/indexes/index/セクションにmaxTermsCountInFacetパラメータを追加することで制限を設定できます:
!注現在、すべてのピボットファセットはサポートされていません。リクエストから除外され無視されています。