【问题标题】:hibernate search on heroku在heroku上进行休眠搜索
【发布时间】:2012-12-14 16:10:18
【问题描述】:

我有一个使用 Spring+JPA+Hibernate 在 Heorku 上运行的应用程序,我使用 Hibernate-Search 进行 FullTextSearch。在我的本地机器上,我将索引存储在文件系统上。我在 persistence.xml 中的配置。

<property name="hibernate.search.default.directory_provider" 
    value="filesystem"/> 
<property name="hibernate.search.default.indexBase" 
    value="/opt/lucene/indexes"/> 

Heroku 对文件系统具有只读访问权限,然后我将索引存储在内存中,但这不是最好的方法,因为当服务器实例重新启动时索引会丢失。最好的方法是如何做到这一点?有没有办法将休眠搜索与 WebSolr 或其他东西集成?

【问题讨论】:

  • Heroku 没有只读文件系统(在 Cedar 上);只是不鼓励您写入文件系统,因为您的多个节点可能会不同步。如果您确定索引将在每个节点上生成相同,或者每个节点上具有不同的索引不是问题,那么您可以写入文件系统。不过,我仍然倾向于将您的应用程序连接到 Heroku 的众多优秀搜索插件之一的方法。
  • Heroku 有一个临时文件系统,“这意味着您不能动态写入文件系统以进行半永久存储”。哪个搜索插件可以与休眠搜索集成?
  • 是的,还忘了提到 ti 的短暂性,因此您必须在每次启动时重新生成索引。不幸的是,我不确定如何将 Hibernate 连接到他们的附加组件之一,而不是连接其他系统,所以希望有人会用该信息留下正确的答案。
  • 我找到了解决方案。我将在 heroku 上使用 mongodb 插件来存储我的索引,我已经基于 mongodb 目录为 lucene 实现了一个用于休眠搜索的目录提供程序,并且在我的本地机器上工作正常。
  • 太棒了!我建议您将其添加为“答案”并自己接受,以便对偶然发现此页面的其他人有用。

标签: java heroku solr lucene hibernate-search


【解决方案1】:

我找到了解决方案。我将在 heroku 上使用 mongodb 插件来存储我的索引,我已经基于 mongodb 目录为 lucene 实现了一个用于休眠搜索的目录提供程序,并且在我的本地机器上工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多