2

我想知道如何返回可搜索的特定域?例如我们有域A和B。两个域都是可搜索的并且有关系:A有很多B,B属于A。另一种情况A和B有多对多的关系。

现在,当我搜索项目时,我必须始终返回 A 项目。就我而言,假设我在 B 中找到匹配项,我需要为每个 B 返回所有 As。其他方式也应该有效。

目前我做的搜索查询是可搜索的服务:

def searchResults = searchableService.search(params.q, params)

有没有办法为任何搜索结果获取所有相关的 A 域?

谢谢你。

4

1 回答 1

2

使您的域(A 和 B)都可搜索,然后添加DomainObject component:true可搜索的属性。

class A{
  String name

  static hasMany = [bclass: B]
  static searchable = {
     bclass component: true
  }
}

class B{
  String color

  static belongsTo= [aclass: A]
  static searchable = true
}

假设在B中有一些颜色字段值为“红色”的行

A.search("red") 

将返回A 的所有实例,其子类B颜色字段值为“红色”

于 2013-01-03T06:49:12.010 回答