我需要开发一个系统,其中显示不同类型的“内容块”。首先,我有三个系统提供数据块(其中一个是博客,另一个是事件列表,第三个是定制的)。这可能会在项目的后期扩展。
这个想法是有一个长列表,首先在发布日期排序(按时间顺序排列)。但是,某些类型可能具有更高的优先级,因此例如,事件在列表中显示的相对高于具有因子x
的博客帖子。
然后我需要一些额外的排序,比如博客文章可能会被“推荐”,所以它们也会被赋予更多的优先级,比如因为y
。最后一件事是内容块可能被标记为“粘性”,因此它们始终位于列表的顶部。
由于solr背后的先进技术和所有查询选项,我当时正在考虑使用solr作为此列表块的引擎。类似的东西是可能的,还是另一种更适合这种技术呢?
我对solr的偏好也是因为将新内容注入索引会相对容易。但是我必须如何定义一个查询以返回按日期排序的完整(分页)索引,这也是我必须要弄清楚的。
作为最后一点:应用程序将是一个php(Zend Framework 2)项目,所以它更好,它必须直接使用php或为php编写的客户端(例如SolrClient for solr)。把它作为一个问题来形容:对于上述要求可能是一项好的技术,对于这个问题是一个好的技术吗?
答案 0 :(得分:0)
拥有一个名为string
的{{1}}类型字段,该字段可以包含值doctype
,blog
以及将来的任何内容。
event
这意味着字段&bq=cat:electronics^5.0
&bq=sponsored:true
&bq=doctype:blog^5.0
和值doctype
的文档得分得到提升。 blog
是提升权重,当一个条件比另一个条件更重要时有用。
改编自http://wiki.apache.org/solr/ExtendedDisMax#Examples
从http://wiki.apache.org/solr/SolrRelevancyFAQ看11.1将内容推广到顶部;和12根据某事物的价值提升。
如果要进行多个查询以呈现单个页面,请使用异步HTTP调用。如果您一个接一个地对333毫秒进行3次查询,那么您的页面将需要一秒钟才能加载。但是有3个异步查询,它将更像是340毫秒。但在PHP中可能很难!