使用MongoDB在Grails应用程序上运行基于Lucene的搜索

时间:2013-10-25 11:45:49

标签: mongodb grails solr lucene elasticsearch

目前,我正在研究如何使用MongoDB在Grails应用程序上实现基于Lucene的搜索。

要求包括以下内容:

  • 要索引的数据存储在MongoDB
  • 仅插入数据(无更新,无删除)
  • 应用程序必须在CloudBees平台
  • 上运行
  • 搜索应在没有任何外部服务(如Searchly或WebSolr
  • )的情况下实施

到目前为止,这似乎并不是很复杂,因为有Grails插件。但是,我面临的主要问题是我的应用程序使用动态 MongoDB集合。所以我没有为每个集合都有一个域类。相反,应该编制索引的集合可以具有任意名称和模式。因此,我不能使用像searchable这样的Grails插件,因为这些插件似乎只适用于固定域类(或者我错了吗?)。

是否有人有过如何在这样的环境中实施搜索的经验?任何提示,链接,提示或建议?

1 个答案:

答案 0 :(得分:0)

您可以为动态MongoDB集合使用一个索引和多个类型。但是,由于集成模块是在域模型索引的思维集中完成的,因此该逻辑应该由您自己编码。

对于ElasticSearch,您可以通过groovy使用Jest进行ElasticSearch https://github.com/searchbox-io/Jest

不幸的是,Searchly为单个集合提供了开箱即用的MongoDB集成。因此,现在您还需要查询MongoDB(您动态创建的集合),将数据索引到新类型下的索引并查询它。

由于没有相关答案,我的旧帖子被删除了,好吧:)