微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Faceted Search With(out)Solr

我想为我的一个项目实施 faceted search.我正在使用PHP5,MysqL和Symfony 1.4.显然,社区指向 Apache Solr,这似乎正是我想要完成的事情.

问题是该网站将在托管服务提供商上运行,不允许我设置Solr(它是一个共享托管环境,既不允许Tomcat也不允许Solr运行).

那么请您指点一下可能的替代方案,或者是否有办法在这样的环境中设置Solr?

编辑
我的托管服务提供商既不支持SOLR,也不支持opensolr.一般情况下,我无法使用我的环境连接到同一服务器或远程服务器上的进程.似乎唯一可用的选项是使用Zend_Search_Lucene.那么这是否支持分面搜索?或者,如果您有其他选择,请分享!我觉得自己处在不知名的地方!

编辑2
由于这个问题从给出的答案开始大约一周,我感到惊讶(并且失望)PHP中没有可用于实现分面搜索的库(非服务).似乎要么需要手动实现,要么使用下面提供的解决方

解决方法

性能不会很好,也不讨论扩展,但您始终可以通过HTTP创建反向HTTP隧道.基本上,不是Web服务器打开到Solr服务器的出站连接,而是Solr服务器连接到Web服务器以请求作业和发布作业结果.

你需要做什么:

>浏览器发布搜索查询,查询只是在数据库中排队.
>反向代理定期连接到Web服务器(通过普通的端口80)以从作业队列中获取查询列表,将查询传递给Solr服务器,并将结果POST回Web服务器.
>浏览器定期轮询Web服务器以查找完成的搜索结果.

奖励标记:如果您的服务器允许并发请求处理,请使用long polling来改善延迟.

简而言之,咬紧牙关,搬到一个体面的主人.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐