数据类型为.Complex的Azure搜索建议器及其子字段

数据类型为.Complex的Azure搜索建议器及其子字段,azure,azure-cognitive-search,azure-search-.net-sdk,azure-rest-api,Azure,Azure Cognitive Search,Azure Search .net Sdk,Azure Rest Api,我是Azure搜索的新手。我一直在尝试为其中一个字段创建一个包含DataType.Complex的新索引。Microsoft提供了一个示例,说明如何使用DataType.Complex创建新索引,但仅针对建议者 以下是Microsoft文档作为示例显示的请求主体,但我不太确定如何在suggester中添加复杂类型的子字段。有办法吗 "name": "hotels", "fields": [ { "name": "HotelId", "type": "Edm.String",

我是Azure搜索的新手。我一直在尝试为其中一个字段创建一个包含DataType.Complex的新索引。Microsoft提供了一个示例,说明如何使用DataType.Complex创建新索引,但仅针对建议者

以下是Microsoft文档作为示例显示的请求主体,但我不太确定如何在suggester中添加复杂类型的子字段。有办法吗

  "name": "hotels",  
  "fields": [
    { "name": "HotelId", "type": "Edm.String", "key": true, "filterable": true },
    { "name": "HotelName", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": true, "facetable": false },
    { "name": "Description", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "en.microsoft" },
    { "name": "Description_fr", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "fr.microsoft" },
    { "name": "Category", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true },
    { "name": "Tags", "type": "Collection(Edm.String)", "searchable": true, "filterable": true, "sortable": false, "facetable": true, "analyzer": "tagsAnalyzer" },
    { "name": "ParkingIncluded", "type": "Edm.Boolean", "filterable": true, "sortable": true, "facetable": true },
    { "name": "LastRenovationDate", "type": "Edm.DateTimeOffset", "filterable": true, "sortable": true, "facetable": true },
    { "name": "Rating", "type": "Edm.Double", "filterable": true, "sortable": true, "facetable": true },
    { "name": "Address", "type": "Edm.ComplexType", 
      "fields": [
          { "name": "StreetAddress", "type": "Edm.String", "filterable": false, "sortable": false, "facetable": false, "searchable": true },
          { "name": "City", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true },
          { "name": "StateProvince", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true },
          { "name": "PostalCode", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true },
          { "name": "Country", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true }
        ]
    },
    { "name": "Location", "type": "Edm.GeographyPoint", "filterable": true, "sortable": true },
    { "name": "Rooms", "type": "Collection(Edm.ComplexType)", 
      "fields": [
          { "name": "Description", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "en.lucene" },
          { "name": "Description_fr", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "fr.lucene" },
          { "name": "Type", "type": "Edm.String", "searchable": true },
          { "name": "BaseRate", "type": "Edm.Double", "filterable": true, "facetable": true },
          { "name": "BedOptions", "type": "Edm.String", "searchable": true },
          { "name": "SleepsCount", "type": "Edm.Int32", "filterable": true, "facetable": true },
          { "name": "SmokingAllowed", "type": "Edm.Boolean", "filterable": true, "facetable": true },
          { "name": "Tags", "type": "Collection(Edm.String)", "searchable": true, "filterable": true, "facetable": true, "analyzer": "tagsAnalyzer" }
        ]
    }
  ],
  "suggesters": [
    { "name": "sg", "searchMode": "analyzingInfixMatching", "sourceFields": ["HotelName"] }
  ],
  "analyzers": [
    {
      "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",  
      "name": "tagsAnalyzer",
      "charFilters": [ "html_strip" ],  
      "tokenizer": "standard_v2"    
    }
  ]
}```

通过指定子字段的完整路径,可以将复杂字段的子字段添加到suggester。例如,如果要包括Rooms集合的Description子字段,只需将“Rooms/Description”添加到suggester中的字段列表中即可

例如,上面的suggester JSON看起来是这样的,
“suggester”:[{“name”:“sg”,“searchMode”:“analyzingInfixMatching”,“sourceFields”:[“HotelName”,“Rooms/Description”]}]
这会设置suggester吗?房间/描述子字段是否为真?非常感谢Bruce!!我真的很感激你的帮助help@jack.the.ripper请将评论集中在本答案的主题上。我的团队已经自动指派了一个人来回答你的问题;没有必要直接提到我们,特别是因为它使其他读者更难理解最初的讨论。