需要帮助,我有一个名为“客户”的 azure 索引,其中有两个字段“客户”和“联系人”,我已对两个字段应用了 boost 函数,升压为 100 和 90,问题是当我搜索任何文本时,它会返回与客户相关的文本首先是相关性,然后是联系相关性。
例如:如果我搜索“Johnson” 即使联系人姓名与“Johnson”匹配,它将首先返回与 Johnson 相关的所有客户详细信息,然后返回联系详细信息
显示的记录列表。
记录1:这是客户
- 约翰逊和泰森 分割:企业 |垂直领域:医疗保健|国家/地区:美国
记录 2:这是联系人,但与客户“Johnson and tyson”相关联
- 迈克尔·沃尔顿 客户:约翰逊和泰森 |分割:企业 |行业:制药
记录 3:这是联系人,但与客户“Johnson and tyson”相关联
- 亨利·弗利根 客户:约翰逊和泰森 |分割: 耳鼻喉科 |行业:制药
记录 4:这是与客户“WST”关联的联系人
- 亨利·约翰逊 客户:WST |分割:企业 |行业:制药
因此,通过这种方式,记录最有可能在评分时显示,但我想要相关名称 首先显示的记录 4 是联系人,它应该取代记录 2,因为 Johnson 是姓氏
最佳答案
我相信这是因为你使用相同的值进行提升,所以它是这样的:
if(Customer.Contains("Johnson") || (Contact.Contais("Johnson"))
{
//display
}
//PS:此声明只是为了澄清联系人和客户姓名具有相同的重要性。
尝试用不同的值(value)观来提升,我相信它会起作用。 (客户 100,详细信息 90)。
更新
您似乎正在分别对名字和姓氏进行索引。如果您有一个“全名”字段并通过它进行提升,您可能会得到预期的结果。另一种选择是使用这些字段创建评分配置文件:
https://azure.microsoft.com/en-us/documentation/articles/search-get-started-scoring-profiles/
关于Azure 搜索相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38993696/