我们正在使用弹性搜索某些业务的数据。每个企业都有一个“位置”,并附有几个“标签”。我们有大约100个标签,标签1,标签2 ...标签100。 这是条件: businessA:location1:tag1,tag3,tag55,tag9 businessB:location2:tag14,tag36, businessC:location3:tag11,tag31,tag92,tag55 ...类似的业务N:location4:tag33,tag62,tag43,tag1 现在我从用户那里得到2个输入:1。“商业名称”或“标签”2.位置
现在有3个案例可以来:
在为标签,商家和位置分配特定权重后,我们得到了荒谬的结果。如果我们试图给予最大值<商业名称的权重>&gt;标签&gt; location,我们能够满足语句1和2并且丢失语句3(由于名称中的字符串匹配)。但是,如果我们将重量改为标签&gt;名称&gt;我们得到1和3的位置但是没有2.我们可以使用任何算法来纠正所有三种情况吗?有什么方法可以使用'If-Else'声明而非弹性搜索或任何此类替代方法?
答案 0 :(得分:0)
您可以使用多个查询搜索并一次进行2次搜索:1。找到确切的商家2.通过附近区域的标签查找相关商家并将结果合并到您的代码中