我需要根据故事的标签搜索相关的故事..
说我有一个带有4个标签的故事,所以我的相关故事逻辑将是
第1步:搜索故事下的所有4个标签>>展示故事
第2步:搜索3个标签,创建不同的排列&与标签相关的组合>>展示故事
我怎样才能做到这一点。我是索尔的新人请指导我......
答案 0 :(得分:0)
如果在显示第一个条目时搜索tag:(foo OR bar OR the OR is)
,则可能获取故事2 - 因为它具有最“有价值”的标记(并且Solr的默认计算使用术语在文档中出现的次数除以它出现的文档总数。
最佳结果可能(这将取决于您的用例)仍然是故事2,但如果您确实想要获取与三个标签匹配的文档,你必须以不同的方式去做。
如果您需要第二个选项,可以使用函数查询来解决此问题:termfreq
返回术语在文档中的次数(如果您的标记在文档中是不同的,那么这将是1
)。 sum
允许您对每个函数的值求和,如下所示:
sum(termfreq(tag, 'foo'), termfreq(tag, 'bar'), termfreq(tag, 'the'), termfreq('is'))
..会为您用于排序的每个文档提供明确的标记计数。
您还可以选择使用自定义的相似度类,它会为每个术语返回相同的相似度得分(根据您使用的Solr版本,可以为每个字段设置相似度(而不仅仅是核心))。我不认为有一个,but there's plenty of examples available。