将SOLR与Web项目一起使用的最佳方法是什么?

时间:2009-11-10 02:10:48

标签: search indexing solr

好吧,我对SOLR和Lucene完全不熟悉,但已经让Solr在Tomcat 6.x下运行开箱即用,并且已经超越了一些基本的Wiki条目。

我有几个问题,也需要一些建议。

  1. Solr可以索引文件(XML,CSV)中的数据,也可以索引数据库。您是否也可以将其指向URI /域,并让它以谷歌的方式索引网站?

  2. 如果我的网站有“页面”数据,那么“页面名称”,“页面内容”等,以及“产品数据”,那么“产品名称”,“SKU”等,我需要两个不同的Schema.xml文件?如果是这样,这是否意味着Solr的两个不同实例?

  3. 最后,如果您的项目包含大型关系数据库和规范化数据库,您认为下面3个选项中的最佳方法是什么?:

    1. 在后台运行中间件服务,挖掘数据库并手动创建相关的XML文件,然后发送到SOLR

    2. 让SOLR直接索引DB。在这种情况下,最好只将SOLR指向视图,这会抽象出所有表关系吗?

    3. 我不知道的任何其他选项?

    4. 上下文:我们在Windows 2003环境中运行,.NET 3.5,SQLServer 2005/2008

      喝彩!

2 个答案:

答案 0 :(得分:7)

  1. 不,你需要一个爬虫,例如Nutch
  2. 是的,您需要两个单独的索引(=两个schema.xml),因为数据集似乎不相关。这并不意味着Solr的两个实例,您可以使用Cores来管理这两个索引。
  3. 至于填充Solr索引,它取决于您的特定项目,例如,它是否可以容忍陈旧数据,还是必须绝对新鲜。

    索引数据的其他选项包括:

    • 数据库触发器
    • 如果您正在使用某种ORM,请使用其拦截功能。例如,您可以使用NHibernate事件来更新,插入或删除索引。如果你使用NHibernate和SolrNet这是taken care of automatically

答案 1 :(得分:1)

我认为毛里西奥对他的建议已经死了。我要做的唯一一点就是决定拥有一个“中间件”索引器,或者直接使用数据库。如果您的数据库(或视图?)非常接近Solr架构所需的内容,那么DIH非常棒。但是,如果您要从多个数据源索引,或者您必须了解数据库中的数据以满足Solr的要求,那么拥有专用的中间件索引器会更好。