是的,每个标记都有唯一的ID。我不必将这些唯一的id存储在表中。我可以用这种方式存储它们......
$tags = array("Music","Sports","Food","Books",………)
数组对我来说是最好的方式,因为它很容易改变。此外,数组键本身将作为唯一的ID。
但我的情况更为重要,所以让我详细说明具体情况。
我有一个表格,包括Id,标题,描述,标签等等。
Id | Title | Description | Tags
1 | Sport & Hygine| With sport & music good food is …| Sport, Food
2 | Rock Concert | Great Rock Show at … | Music, Dance
如果用户选择(过滤)显示记录,则会在“标记”字段中显示“音乐”。尽管标题和描述在第二行中根本没有单词Music,但它仍然应该获得第一优先级。此外,应该注意标题和描述是文本字段,Sphinx应该以正常方式搜索,为标题和描述提供适当的权重和等级。但标签字段不能作为文本索引进行搜索。标签字段需要过滤。
因此,在上面的示例中,如果选择了音乐,则应仅显示第2行,因为它是基于标签过滤的,而第2行仅在标签字段中包含音乐。但是音乐也出现在描述字段的第1行中,但在这里它应该被忽略。我希望我能够澄清情况。任何与此有关的人都非常感激。
答案 0 :(得分:0)
unique-id需要在所有文档中都是唯一的。因此,“体育”将在所有文档上具有相同的ID,因此可以使用相同的ID进行搜索。所以你搜索ID,而不是单词。
因此标签可用于影响排名,您可以将它们放在Field中。但是ALSO也将标签-id存储在MVA中,因此可以用于setFilter。
像
这样的东西Music @tags Music
应该作为扩展查询。因为它需要标签中的音乐一词。但是第一个学期也将匹配所有领域并帮助排名。