Azure cognitive search 在Azure搜索中查找搜索结果的相关性

Azure cognitive search 在Azure搜索中查找搜索结果的相关性,azure-cognitive-search,azure-search-.net-sdk,Azure Cognitive Search,Azure Search .net Sdk,我有一个Azure搜索索引,其中包含用户的地址信息,字段和相应的权重如下: weights= @{ HouseNumber = '40' StreetName = '36' City = '30' PostalCode = '29'

我有一个Azure搜索索引,其中包含用户的地址信息,字段和相应的权重如下:

weights= @{  
                              HouseNumber = '40'      
                              StreetName = '36'
                              City = '30'
                              PostalCode = '29'
                              Province = '25'
                              Country = '21'
                              FSA = '20'      
                              Plus4 = '16'
                              SuiteName = '12'
                              SuiteRange = '11'
                              StreetPost = '10'
                              StreetPre = '8'
                              StreetSuffix = '6'
                            }

我使用searchmode作为任何查询模式。我怎样才能确定得分最高的记录是最相关的记录?意味着,如果用户没有输入地址的所有关键字,记录的相关性可能会有所不同。例如,如果字符串包含诸如“1A1”之类的关键字,则该关键字可以是邮政编码“A1A 1A1”的一部分,也可以是门牌号。这将返回两个记录,但分数不同。我应该如何解决这个问题?

如果查询的术语可以匹配多个字段(例如,如果'1A1'可以匹配PostalCode和HouseNumber字段中的结果),那么评分配置文件将通过提升每个相应的结果而按预期工作


您应该为应用程序插入仪器,以便。这样,查询的每个部分都在搜索正确的字段,匹配项也会相应增加。

问题在于创建字段范围时字段是否不在正确的字段上。这些查询是由可能犯人为错误的最终用户创建的。因此,在这种情况下,查询将不起作用。此外,搜索查询的某些部分可能为null,或者可能有额外的值。e、 g.如果查询有完整地址,但不是数据库将包含该国家的国家。此外,如果查询在查询中指定了特定的街道名称,但我们的数据库将该字段设置为空,以获得所需的结果。如果查询缺少信息(例如,如果查询不包括PostalCode),字段范围的查询将不会返回不相关的结果,因为不会对该字段执行搜索。如果索引中的文档缺少信息(例如,如果查询包含门牌号,且结果中的门牌号字段为空),则字段范围的查询仍应基于其他字段(即街道名称、省份等)返回相关结果,即使它与特定门牌号不匹配。同义词和模糊搜索等功能有助于减少人为错误。但如何处理涉及错误字段映射的人为错误?您所说的人为错误到底是什么意思?在应用程序的UX中,您可以使用单独的搜索框或下拉菜单来搜索街道地址、城市、省、国家、邮政编码等。用户将地址输入地址字段,将邮政编码输入邮政编码字段,依此类推。然后,在构造要发送到Azure Search的查询时,应用程序可以为每个字段使用适当的字段范围查询。