如何在Azure搜索中索引相关的SQL表?

时间:2017-09-29 10:41:12

标签: azure-search

有2个相关表:categoriesproductsproducts表格包含字段categoryId,其中包含id个类别。如何索引products表来获取name或其他任何类别?

每个表有一个索引器和一个索引。

// categories indexer
    {
        "name": "categories",
        "dataSourceName": "categories",
        "targetIndexName": "products",
            "fieldMappings": [
            {
                "sourceFieldName": "id",
                "targetFieldName": "id"
            },
            {
                "sourceFieldName": "name",
                "targetFieldName": "name"
            }
    }

// products indexer
    {
        "name": "products",
        "dataSourceName": "products",
        "targetIndexName": "products",
            "fieldMappings": [
            {
                "sourceFieldName": "id",
                "targetFieldName": "id"
            },
            {
                "sourceFieldName": "name",
                "targetFieldName": "name"
            },
                {
                "sourceFieldName": "categoryId",
                "targetFieldName": "categoryId"
            }
    }

// index
{  
    "name": "products",  
    "fields": [  
      {  
        "name": "id",  
        "type": "Edm.String",  
        ...  
      },
      {  
        "name": "categoryId",  
        "type": "Edm.String",  
        ...
      },
      {  
        "name": "category_name",  
        "type": "Edm.String",  
         ...
      },
      {  
        "name": "name",  
        "type": "Edm.String",  
        ...
      }
...

1 个答案:

答案 0 :(得分:1)

创建一个连接categoriesproducts表的视图,可能会将所有caregoryIds非规范化为产品文档的集合字段。 (您可以对其他类别数据使用相同的方法)。为该视图设置索引器。

另一种方法是为产品和类别创建两个单独的搜索索引,并在搜索客户端代码中执行联接。