Azure 搜索嵌套 Class 索引
Azure Search Nested Class Indexing
我尝试为我的应用程序使用 Azure 搜索服务。我有一个嵌套的 class 喜欢
public class Products
{
String ProductName {get;set;}
List<Order> Order {get;set;}
}
public class Order
{
String Name {get;set;}
}
而且我找不到一种方法来索引产品,不仅搜索产品名称属性而且搜索订单名称。
在 Azure 搜索中如何处理这个问题?
您是否考虑过使用 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 关系并将 Order 作为主要实体,其所有属性包括 ProductName:
{
"name":"orders",
"fields":[
{
"name":"ordertId",
"type":"Edm.String",
"key":true,
"searchable":false
},
{
"name":"productName",
"type":"Edm.String"
},
{
"name":"orderName",
"type":"Edm.String"
}
]
}
我尝试为我的应用程序使用 Azure 搜索服务。我有一个嵌套的 class 喜欢
public class Products
{
String ProductName {get;set;}
List<Order> Order {get;set;}
}
public class Order
{
String Name {get;set;}
}
而且我找不到一种方法来索引产品,不仅搜索产品名称属性而且搜索订单名称。
在 Azure 搜索中如何处理这个问题?
您是否考虑过使用 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 关系并将 Order 作为主要实体,其所有属性包括 ProductName:
{
"name":"orders",
"fields":[
{
"name":"ordertId",
"type":"Edm.String",
"key":true,
"searchable":false
},
{
"name":"productName",
"type":"Edm.String"
},
{
"name":"orderName",
"type":"Edm.String"
}
]
}