假设我们有三个Grails域类,如下所示:
class Person {
String name
static searchable = true
}
class Boss extends Person { }
class Employee extends Person { }
然后我们创建/持久化一个Boss和一个Employee实例:
def myBoss = new Boss(name:"Boss")
myBoss.save()
def myEmployee = new Employee(name:"Employee")
myEmployee.save()
默认情况下,ElasticSearch插件似乎会将这些实例编入类型为Boss
和Employee
的索引,而不是类型Person
。
鉴于只有一个继承的字段可以搜索,有没有办法将ElasticSearch映射更改为Person
而不是Boss
和Employee
(不使用低级API)?
这样我们就可以使用一个查询按名称搜索所有Persons
,而不是Boss
和Employee
上的两个单独查询。