我已经在map中创建了索引和一些数据,并通过低级接口使用elasticsearch-grails-plugin https://grails.org/plugin/elasticsearch分配了一个类型,但当我尝试使用elasticSearchService.search()执行搜索并在参数中指定包/类型时,我得到了一个异常,对象类型不是未知的:
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()
}下面是如何执行搜索的,它抛出了上面的excpetion:
elasticSearchService.search([types:'mypackagetype1'],
{
query_string(fields: ["name"],
query: searchQuery)
}, null)但是,当我尝试通过elasticSearchContextHolder.mapping获取映射时,它不会返回任何内容。有趣的是,当我使用elasticSearchAdminService检查映射是否存在时,它返回为正。
elasticSearchAdminService.mappingExists("myindex", "mypackagetype1")为什么我会得到对象类型未知异常?虽然我已经添加了.
发布于 2015-06-29 13:26:10
正如@cfrick评论的那样,目前仅支持域映射。所以我已经通过低级api调用进行了处理
https://stackoverflow.com/questions/30859863
复制相似问题