1

アプリケーションに Azure Search サービスを使用しようとしています。私は次のようなネストされたクラスを持っています

public class Products
{
    String ProductName {get;set;}
    List<Order> Order  {get;set;}
}
public class Order
{
    String Name {get;set;}
}

また、productname プロパティを検索するだけでなく、ordername を検索する製品にもインデックスを付ける方法が見つかりませんでした。

Azure Search でこの問題を処理するにはどうすればよいですか?

4

1 に答える 1

1

Collection(Edm.String) フィールド タイプの使用を検討しましたか? 次のインデックス定義が適切かどうかを確認してください。

{
    "name": "products",  
    "fields": [
      {"name": "productId", "type": "Edm.String", "key": true, "searchable": false},
      {"name": "productName", "type": "Edm.String"},
      {"name": "orderNames", "type": "Collection(Edm.String)"}
    ]
}

次に、次のようにドキュメントにインデックスを付けることができます。

{
   "value":[
      {
         "productId":"1",
         "productName":"product1",
         "orderNames":[
            "order1",
            "order2"
         ]
      },
      {
         "productId":"2",
         "productName":"product2",
         "orderNames":[
            "order1",
            "order2"
         ]
      }
   ]
}

または、Product - Order 関係を逆にして、ProductName を含むすべてのプロパティを持つメイン エンティティとして Order を持つことができます。

{
   "name":"orders",
   "fields":[
      {
         "name":"ordertId",
         "type":"Edm.String",
         "key":true,
         "searchable":false
      },
      {
         "name":"productName",
         "type":"Edm.String"
      },
      {
         "name":"orderName",
         "type":"Edm.String"
      }
   ]
}
于 2015-03-31T12:18:07.783 に答える