根据高亮片段从Solr查询中排除重复结果?

时间:2011-09-14 15:17:41

标签: html search solr nutch

场景:

我使用Nutch和Solr索引了很多网站。我已经按网站实施了结果分组。我的结果输出包括页面标题,突出显示片段和URL。我的问题在于许多公司网站上出现的页面导航/版权/公司信息位。

例如,对“焊料”的查询可能会返回特定网站的200多个结果 - 但实际上只有少数结果是合适的;也许公司的网站结构在每个页面上都包含“焊接”作为其核心业务描述,网站导航等的一部分。有相关的结果可以看到,但它们被网站上其他页面的无关重复匹配所淹没

问题:

我已经看过其他帖子,询问如何防止Nutch和Solr索引网站页眉,页脚,导航等,但是如果有这么多不同的网站,这种方法是不可行的。然而,我所观察到的是,尽管每个结果的内容有很大不同,但返回的突出显示的片段与我不想要的结果相同,为90-100%。观察:

Products | Alloy Information || --------
-Free Solutions Halogen-Free Products Sales Contacts Technical Articles Industry Links Terms & Conditions Products Support Site Map Lead-Free Solutions Halogen-Free Products Sales   Contacts Technical Articles Industry
http://www.--------.com/Products/AlloyInformation.aspx

Products | Chemicals & Cleaners || --------
-Free Solutions Halogen-Free Products Sales Contacts Technical Articles Industry Links Terms & Conditions Products Industrial Division   Products Services News Support Site Map Lead-Free Solutions Halogen-Free Products Sales
http://www.--------.com/Products/ChemicalsCleaners.aspx

Products | Rosin Based || --------
-Free Solutions Halogen-Free Products Sales Contacts Technical Articles Industry Links Terms & Conditions Products   Products Services News Support Site Map Lead-Free Solutions Halogen-Free Products Sales Contacts Technical
http://www.--------.com/Products/RosinBased.aspx

Support | Engineering Guide || --------
-Free Solutions Halogen-Free Products Sales Contacts Technical Articles Industry Links Terms & Conditions Support   Products Services News Support Site Map Lead-Free Solutions   Halogen-Free Products Sales Contacts Technical
http://www.--------.com/Support/EngineeringGuide.aspx

大创意:

这引出了一个问题:我是否可以根据返回的突出显示的片段过滤或分组结果。我不能只对内容进行分组,因为1)这个领域很大; 2)内容在页面之间有很大差异。如果我可以对其片段大于等于85%的结果进行分组,排除或重复数据删除,则可能会解决问题。也许是某种后处理步骤或某种令牌化工厂?或者是搜索结果的一种idf而不是整个文档集?

这似乎是一个相当普遍的问题,也许我只是错过了怎么做。基本上这是谷歌的“要等你的搜索,我们隐藏了xxx类似的结果。点击这里显示它们”功能。

思想?

2 个答案:

答案 0 :(得分:0)

在基础运输Nutch(不是Solr)中有一个集群机制,我真的不知道它是如何工作的,但它做了我必须删除的东西。你看过那个吗?

另一个想法是:从导航片段索引separetely真实内容。在搜索时,您将更高的查询权重应用于“真实内容”字段。

哪个会以“焊接”作为内容向前推送页面,而不是仅使用“焊接”作为导航的页面,而是保留所有页面以防万一。

希望我能正确理解你的问题。

答案 1 :(得分:0)

我认为没有任何方法可以完全按照您的要求进行操作,除非后处理由您决定,而且对于较大的结果集效率不高。

如果返回的文档实际上完全不同,也许你应该问一个不同的问题,即使这些片段是相同的。如果文件不同,可能会显示所有文件的价值,而不是重复删除。

您可以尝试增强搜索结果显示以显示有关文档的更多信息,以便用户可以区分它们 - 可能不依赖于突出显示,但也显示文档的其他部分?

我确实认为,问题的核心是需要在网站样板中找到与在其他地方找到的匹配相关的匹配。通常相关性排名可以很好地解决这个问题,因为常用术语对于相关性排名来说不那么重要,但是如果您混合来自各种不同站点的文档,您可能会发现效果不太明显 - 因为在一个站点上经常重复的术语在另一个网站上可能非常独特。如果您的结果是按站点真正划分的,您可以考虑为每个站点创建单独的索引(核心) - 这将以特定于站点的方式执行相关性计算,并可能有助于解决此问题。