3

我必须使用 grails 在弹性搜索中索引数据。

据我了解,只有域对象可以使用 grails 插件进行索引。是否有 utilclass 或服务来索引我不想存储在 DB 中的任意 JSON 数据?

到目前为止,我已经看到了以下索引方法,但它们似乎都需要域对象进行索引。

// Index all searchable instances
elasticSearchService.index()
// Index a specific domain instance
MyDomain md = new MyDomain(value:'that')
md.save()
elasticSearchService.index(md)

// Index a collection of domain instances
def ds = [new MyDomain(value:'that'), new MyOtherDomain(name:'this'), new MyDomain(value:'thatagain')]
ds*.save()
elasticSearchService.index(ds)

// Index all instances of the specified domain class
elasticSearchService.index(MyDomain)
elasticSearchService.index(class:MyDomain)
elasticSearchService.index(MyDomain, MyOtherDomain)
elasticSearchService.index([MyDomain, MyOtherDomain])
4

1 回答 1

0

可以使用低级 API完成

这段代码对我有用:

         elasticSearchHelper.withElasticSearch { client ->
            String json = "{" +
                "\"user\":\"" + userName + "\"," +
                "\"postDate\":\"2013-01-30\"," +
                "\"message\":\"trying out Elastic Search\"" +
                "}";

            def response = client.prepareIndex("twitter", "tweet")
                .setSource(json)
                .execute()
                .actionGet()
        }
于 2014-01-20T10:26:21.117 回答