具有 DataType.Complex 及其子字段的 Azure 搜索建议

标签 azure azure-cognitive-search azure-search-.net-sdk azure-rest-api

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

这是 Microsoft 文档显示的请求正文作为示例,但我不太确定如何在建议器中添加复杂类型的子字段。有办法做到吗?

  "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"    
    }
  ]
}```

最佳答案

您可以通过指定子字段的完整路径来将复杂字段的子字段添加到建议器中。例如,如果您想包含“房间”集合的“描述”子字段,只需将“房间/描述”添加到建议器的字段列表中即可。

关于具有 DataType.Complex 及其子字段的 Azure 搜索建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57548255/

相关文章:

c# - Azure 搜索 .Net SDK 中的复杂类型支持

Azure容器注册表: trying to build using oci context - Error: failed to download context

azure - 我应该如何配置 Jenkins CI(或 Hudson)以在 Azure 上运行?

azure - 如何在 Azure 搜索中搜索特定字段中的部分字符串?

azure-cognitive-search - Azure 搜索重试策略

Azure 搜索未返回正确的结果。搜索查询中的(点)

azure - 如何优化 RU 以替换 Azure Cosmos DB 中的文档?

azure - AKS : Logging into worker nodes and get Permission denied (publickey)

azure - 将 PDF 中的表格提取到 Azure 搜索

Azure 搜索在索引器运行后不会删除数据