0

我需要开发一个显示不同类型“内容块”的系统。首先,我有三个系统提供数据块(其中一个是博客,另一个是事件列表,第三个是自定义的)。这可能会在项目的后期得到扩展。

这个想法是有一个很长的列表,首先在发布日期排序(按时间顺序)。但是,某些类型可能具有更高的优先级,例如,事件在列表中的显示相对高于带有 factor 的博客文章x

然后我需要一些额外的排序,比如博客文章可能是“特色”,所以它们也被赋予了更高的优先级,比如说一个因素y。最后一件事是内容块可能被标记为“粘性”,因此它们始终保持在列表的顶部。

由于 solr 和所有查询选项背后的先进技术,我正在考虑使用 solr 作为这个块列表的引擎。这样的事情可能吗,还是另一种技术更适合这个?

我偏爱 solr 也是因为将新内容注入索引相对容易。但是我必须如何定义查询以返回按日期排序的完整(分页)索引,这也是我必须弄清楚的事情。

最后一点:应用程序将是一个 php(Zend Framework 2)项目,因此它必须直接使用 php 或由为 php 编写的客户端(例如,用于 solr 的 SolrClient)工作。将其表述为一个问题:对于上述要求,什么可能是一项好的技术,而 solr 是一个好的技术吗?

4

1 回答 1

0

有一个string名为的类型字段doctype,它可以接受值blogevent以及将来的任何内容。


&bq=cat:electronics^5.0
&bq=sponsored:true
&bq=doctype:blog^5.0

这意味着字段doctype和价值文档的分数blog得到了提升。这5.0是增加重量,当一种情况比另一种情况更重要时很有用。改编自此http://wiki.apache.org/solr/ExtendedDisMax#Examples


并从http://wiki.apache.org/solr/SolrRelevancyFAQ看到 11.1 将内容提升到顶部;和 12 用于根据某物的值进行提升。


如果要进行多个查询以呈现单个页面,请使用异步 HTTP 调用。如果您一个接一个地进行 3 个 333 毫秒的查询,您的页面将需要一秒钟的时间来加载。但是使用 3 个异步查询,它更像是 340 毫秒。但在 PHP 中可能很难!

于 2012-11-30T14:05:50.650 回答