elasticsearch,Grails,elasticsearch" /> elasticsearch,Grails,elasticsearch" />

如何使用grails在固定时间间隔后重新索引elasticsearch数据?

如何使用grails在固定时间间隔后重新索引elasticsearch数据?,grails,elasticsearch,Grails,elasticsearch,我已经在我的grails项目中安装了elasticsearch插件,现在我希望无论何时在生产环境中构建应用程序,elasticsearch数据都应该自动重新编制索引。有办法做到这一点吗 根据标准,当应用程序启动时,您应该能够重新索引grails app/conf/BootStrap.groovy中的所有内容 例如,类似这样的内容: // grails-app/conf/BootStrap.groovy class BootStrap { def elasticSearchServ

我已经在我的grails项目中安装了elasticsearch插件,现在我希望无论何时在生产环境中构建应用程序,elasticsearch数据都应该自动重新编制索引。有办法做到这一点吗

根据标准,当应用程序启动时,您应该能够重新索引
grails app/conf/BootStrap.groovy中的所有内容

例如,类似这样的内容:

// grails-app/conf/BootStrap.groovy
class BootStrap {    
    def elasticSearchService

    def init = { servletContext ->
        environments {
          production {
            // Index all searchable instances
            elasticSearchService.index()
          }
        }
    }
    def destroy = {
    }
}

如果您想设置一个也按计划运行的Quartz作业,那么同样的重新索引概念也适用。但是,我将把它留给您来实现。

在grails中使用elasticsearch而不安装elasticsearch插件还有其他方法吗。??这似乎不是一个好主意,因为可搜索的数据将在重新编制索引后显示。这将是一个不同的问题,因为最初的问题是关于使用elasticsearch插件的。然而,由于Grails是一个Spring/Java应用程序,因此没有什么可以阻止您纯粹从Java的角度使用Elasticsearch。所以,不,你不需要插件。