我应该使用哪种SOLR实现方法; 3个问题?

时间:2010-01-18 15:21:14

标签: java php mysql solr

我有一个分类广告网站,我现在正在尝试将SOLR集成到其中,因此搜索变得更快......

我目前将Mysql作为所有记录的数据库,我使用PHP查询并显示结果。

我有三个主要问题: 如果我要实施SOLR,那么标准的方法是怎样的呢?

并且,我不知道每次发布/更新/更改新分类时是否应更新SOLR索引,或者每12小时左右将其全部索引一次?

我应该使用SOLR查找分类的ID,然后在mysql中获取记录,还是应该使用ONLY SOLR?

我需要一些关于如何前进的例子和建议,有点坚持这个......

我已经阅读了一些关于如何在PHP中使用SOLR的精彩文章......但是如果这就是我需要的话,还没有找到关于dataImportHandlers的好文章。

由于

1 个答案:

答案 0 :(得分:2)

  

如果我要实施SOLR,那该怎么办?   这样做的标准方式是什么?

使用Solr的标准方法是将其配置为单独的Web应用程序,在您喜欢的Web应用程序容器的实例中运行(建议使用Jetty,并且可能存在与Resin的一些不兼容问题)。您可以通过HTTP接口与其进行通信,可以通过编程方式使用SolrJ等库或提供的JAR文件,也可以直接使用curl或Web浏览器进行通信。

要开始使用,我建议您阅读tutorial,这是针对Solr 1.3的,但大部分仍然相关。

  

而且,我还不明白我是否应该这样做   每次更新SOLR索引   分类是张贴/或   更新/更改,或全部索引   每12个小时一次?

您可以在发布文档后立即添加文档。 Solr将首先将它们写入内存,然后根据您的配置设置,在经过一定时间后或在一定数量的文档挂起之后,它会将它们“提交”到磁盘上的索引。您还可以配置索引的优化频率,这是一种压缩磁盘索引的昂贵操作。

  

我应该使用SOLR来查找ID   分类广告然后取   在mysql中记录,或者我应该只使用它   SOLR?

如果您的数据很小(按总大小而不是单独),您可以将其全部放入Solr,但随着它变大,您可能希望使用混合解决方案,其中Solr只保存索引值,MySQL用于存储的数据。

  

但还没有找到任何好文章   关于dataImportHandlers,如果那样的话   我需要什么..

如果要将MySQL数据导出到Solr,请使用CSVRequestHandler(请注意,此处的csv可以是任何平面文件格式,就像MySQL会生成的那样。

修改:为了回应您的评论,我之前没有查看DataImportHandler,但是在Solr手册中阅读page,似乎这是当您拥有需要保留的整个模式时,可以直接从数据库导入数据(一次全部或定期增量)。所以我想说如果您需要索引的数据是单个表中的几个字段,请使用CSVRequestHandler,因为它非常简单且不需要配置,但如果您有一堆表,他们和所有数据之间的关系需要放入索引,那么你应该研究DataImportHandler

编辑2 :任何可以发出HTTP请求的内容都可以更新Solr,但这里是Google代码项目的link,它提供了Solr客户端的PHP实现。我自己没有用过。