Azure Cognitive Searchのフィールドの種類
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore Azure Cognitive Search内では、特定のフィールドまたはSitecoreフィールド タイプのデータ タイプを定義できます。つまり、Azure Cognitive Searchインデックスでフィールドを定義する方法を制御できます。デフォルトでは、Sitecoreはインデックスに保存されているフィールド名にフィールド タイプのサフィックスを追加します。これにより、Sitecoreで定義されたフィールドのうち、同じ名前でフィールド タイプが異なるフィールドに対して競合が発生しなくなります。論理名が同じでEDMの種類が異なるフィールドは、インデックス内の異なる物理フィールドに格納されます。
フィールド マッピングを構成するときは、2つの異なるレベルで適用する必要があります。特定のSitecoreフィールドまたはSitecoreフィールド タイプを .Netタイプにマッピングしたり、タイプをEDMフィールド タイプにmap.Netしたりすることもできます。EDMフィールドの種類は、Azure Cognitive Searchインデックス内でフィールドが格納されるデータ型です。
Sitecoreフィールド タイプを .Netタイプにマッピングする
Sitecoreフィールド タイプを .Netタイプにマッピングする
Sitecore.ContentSearch.Azure.DefaultIndexConfiguration.configファイルでは、Sitecoreフィールド タイプを .Netフィールド タイプにマッピングする方法を確認できます。
たとえば、リッチ テキストのSitecoreフィールド タイプを .Netタイプにマッピングできます “System.String”。
また、特定のフィールドを .Netタイプにマップすることもできます。この設定は優先度が高く、フィールドタイプの設定を上書きします。
たとえば、“testfield1” という名前のフィールドを .Netタイプにマップできます"System.String"
.Net型からEDM型へのマッピング
.Net型からEDM型へのマッピング
Sitecore.ContentSearch.Azure.DefaultIndexConfiguration.configファイルでは、.Netフィールド タイプをEDMフィールド タイプにマップする方法を確認できます。
たとえば、.Netフィールド タイプ "System.Char" のフィールドを "Edm.String" フィールド タイプにマッピングできます。
EDM型の型サフィックス
EDM型の型サフィックス
型サフィックスは、Azure Cognitive Searchインデックスの元のフィールド名に追加されます。 Sitecore.ContentSearch.Azure.DefaultIndexConfiguration.configファイルでは、接尾辞の値を定義する方法を確認できます。デフォルト値については、次の表を参照してください。
|
Original field name |
Field type |
Field name with suffix |
|---|---|---|
|
field1 |
Edm.String |
field1_s |
|
field1 |
Collection(Edm.String) |
field1_sm |
|
field1 |
Edm.Boolean |
field1_b |
|
field1 |
Edm.Int32 |
field1_i |
|
field1 |
Edm.Int64 |
field1_I |
|
field1 |
Edm.Double |
field1_d |
|
field1 |
Edm.DateTimeOffset |
field1_dt |
|
field1 |
Edm.GeographyPoint |
field1_gp |
Sitecore Azure Cognitive Searchがデータを保存する方法
Sitecore Azure Cognitive Searchがデータを保存する方法
同じ名前でタイプが異なる2つのフィールドを持つアイテムについては、Sitecore Azure Cognitive Searchがデータを保存する方法の次の例を参照してください。
テンプレート定義には、たとえば、同じ名前のField1を持つ2つのフィールドを含めることができますが、フィールド タイプは異なります。次の例では、1行テキスト とIntegerです。

このテンプレートから、Test1という項目を作成し、2つのフィールドに異なる値を入力できます。

インデックスには、同じ名前のfield1という2つのフィールドがありますが、それらには異なるフィールド タイプが含まれていることがわかります。これらのフィールド タイプは、field1_l ( Edm.Int64フィールド タイプ) とfield1_s ( Edm.Stringフィールド タイプ) という異なるサフィックスで定義されます。サフィックスを使用すると、フィールドの種類が異なる重複するフィールド名がある場合の競合を回避できます。
