grails - 通过低级索引时,elasticSearchService的映射/类型丢失

标签 grails elasticsearch elasticsearch-plugin

我已经在 map 中创建了索引和一些数据,并通过低级api通过使用elasticsearch-grails-plugin https://grails.org/plugin/elasticsearch为其指定了一种类型,但是当我尝试使用elasticSearchService.search()执行搜索并在params中按包/类型指定时,出现了异常类型不明:

java.lang.IllegalArgumentException: Unknown object type: mypackagetype1
at org.grails.plugins.elasticsearch.ElasticSearchService$$EPFkEyq8.resolveIndicesAndTypes(ElasticSearchService.groovy:545)
at org.grails.plugins.elasticsearch.ElasticSearchService$$EPFkEyq8.search(ElasticSearchService.groovy:438)
at org.grails.plugins.elasticsearch.ElasticSearchService$$EPFkEyq8.search(ElasticSearchService.groovy:64)

这是我将索引和数据添加到包中的方法。
def somemypackagetype1data = [name:'Alan', city:'Newyork']
elasticSearchHelper.withElasticSearch { Client client ->
def response = client.prepareIndex("myindex", "mypackagetype1")
                    .setSource(somemypackagetype1data)
                    .execute()
                    .actionGet()
}

这是执行搜索的方式,这引发了上述排他性:
elasticSearchService.search([types:'mypackagetype1'],
            {
                query_string(fields: ["name"],
                        query: searchQuery)
            }, null)

但是,当我尝试通过elasticSearchContextHolder.mapping获取映射时,它不会返回任何内容。有趣的是,当我使用elasticSearchAdminService检查映射是否存在时,它返回正值。
elasticSearchAdminService.mappingExists("myindex", "mypackagetype1")

为什么我得到对象类型未知异常?虽然我已经添加了...

最佳答案

正如@cfrick所评论的那样,当前仅支持域映射。所以我已经通过低级api调用处理了它

关于grails - 通过低级索引时,elasticSearchService的映射/类型丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30859863/

相关文章:

elasticsearch - Elasticsearch中 token 之间的AND

java - logstash org.elasticsearch.discovery.MasterNotDiscoveredException 错误

elasticsearch - 如何使 Elasticsearch 更灵活?

json - 如何在 elasticsearch river 插件的帮助下从 elasticsearch 服务器索引 couchdb,从而获取 JSON 数据

unit-testing - Grails单元测试扩展

performance - Newrelic intrumentation 减慢了 Grails 服务的初始化速度

validation - 带有字段的 Grails NumberFormatException 或 GroovyCastException,导致它

c# - 如何从C#调用Grails Web服务

node.js - 在多个 expressjs 路由中共享 elasticsearch 客户端

elasticsearch - 仅在加载Elastic Search索引以使用ElasticSearch输入插件时如何加载特定字段