Как получить доступ к свойству дочернего объекта в среде Compas Search? - PullRequest
1 голос
/ 09 декабря 2010

У меня есть следующий код (в Grails и поисковом плагине или компасе):

class Topic {

  String name;
  static searchable = true;
}

class Question extends BaseEntity {
  String question;

  static searchable = true;
  static hasMany = [
      topics: Topic
  ]
}

Как мне найти Вопрос с указанным идентификатором темы?

Что-то вроде Question.search ("themes # id: 12") или Question.search ("themes.id:12") не работает.

1 Ответ

0 голосов
/ 18 августа 2011

Измените свой блок поиска в Вопросе, чтобы он выглядел следующим образом:

static searchable = {
    topics component: true
}

и в Теме, если вы не хотите, чтобы темы возвращались в качестве корневых элементов поиска

static searchable = [
    root: false
]

Запустите Grails идобавьте несколько элементов, затем загрузите Luke с http://www.getopt.org/luke/ и откройте индекс для вашего объекта домена Question, который будет находиться в ~ / .grails / projects / projName / searchable-index / 'env' / index / question

Если вы перейдете на вкладку документов, вы увидите встроенные в индекс термины, которые будут выглядеть примерно так: $ / Question / themes

Это должно дать вам путь для вставки в ваш Question.search что-токак:

Question.search ('$ / Question / themes / id: 1')

...