我用于在我的应用程序Solr中搜索内容。我不喜欢的是,每次重新启动计算机时,我都必须手动启动Solr,然后,当应用程序中有新内容时,我必须重新索引,因为另一方面 Solr 找不到新数据。
这不是很舒服,例如在服务器上使用 Solr 的工作如何。在 Heroku 上?我是否一直在那里启动 Solr,或者我是否像在我的本地主机上那样一遍又一遍地重新索引数据?
最终,除了Solr之外,是否存在更好的搜索解决方案?
我用于在我的应用程序Solr中搜索内容。我不喜欢的是,每次重新启动计算机时,我都必须手动启动Solr,然后,当应用程序中有新内容时,我必须重新索引,因为另一方面 Solr 找不到新数据。
这不是很舒服,例如在服务器上使用 Solr 的工作如何。在 Heroku 上?我是否一直在那里启动 Solr,或者我是否像在我的本地主机上那样一遍又一遍地重新索引数据?
最终,除了Solr之外,是否存在更好的搜索解决方案?
您使用的是附带的服务器,对吗?
您可以选择将其部署在 Tomcat 中。您只需将文件复制到 Tomcat 并在 Tomcat 配置中注册 Solr 应用程序。Tomcat 作为服务运行。或者,您可以使用脚本在启动时启动 Jetty。
专业的 Solr 服务会尝试让您的 Solr 应用程序保持活跃,并确保您的数据免受任何原因的影响,例如软件崩溃、服务器故障甚至数据中心宕机。
检查 Heroku(或其他托管的 Solr 解决方案)在他们的条款中向您承诺什么。他们会比个人做得更好(不需要频繁重启 Solr 实例!)。
当你向 Solr 添加一些东西时,它会被持久化到磁盘上。提交后,可用于搜索。如果文档发生更改,您可以重新索引它以反映新的更改。
当您重新启动 Solr 时,相同的持久数据可用。你的具体问题是什么?
如果您想从数据库自动索引,可以使用 DIH(直接导入处理程序)。
到目前为止,我对 Solr 很满意。至于在重新启动计算机后启动 Solr 实例,您可以编写一个 bash 脚本来为您执行此操作,或者声明一个别名来启动您的 Solr 和您的应用程序服务器。
至于重新索引。除非从控制台操作您的数据,否则应自动重新索引新的和更新的记录。
对于替代解决方案,请查看Thinking Sphinx