Как я могу получить доступ к свойству дочернего объекта в системе поиска Compas Search?

У меня есть следующий код (в grails и подключаемом модуле поиска, также известном как Compass):

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") не работает.


person yura    schedule 09.12.2010    source источник


Ответы (1)


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

static searchable = {
    topics component: true
}

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

static searchable = [
    root: false
]

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

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

Это должно дать вам путь для ввода вашего запроса Question.search, например:

Question.search ('$ / Вопрос / темы / идентификатор: 1')

person lo_toad    schedule 18.08.2011