¿Cómo puedo acceder a la propiedad del objeto secundario en el marco de Compas Search?
-
25-09-2019 - |
Pregunta
Tengo el siguiente código (en griales y complemento de búsqueda, también conocido como Compass):
class Topic {
String name;
static searchable = true;
}
class Question extends BaseEntity {
String question;
static searchable = true;
static hasMany = [
topics: Topic
]
}
¿Cómo puedo buscar una pregunta con una identificación de tema específica?
Algo como Question.search("topics#id:12") o Question.search("topics.id:12") no funciona.
Solución
Cambie su bloque de búsqueda en Pregunta para que se vea así:
static searchable = {
topics component: true
}
y en Tema si no desea que los temas se devuelvan como elementos de búsqueda raíz
static searchable = [
root: false
]
Enciende griales y agrega algunos elementos, luego descarga Luke desde http://www.getopt.org/luke/y abra el índice de su objeto de dominio Pregunta que estará en ~/.grails/projects/projName/searchable-index/'env'/index/question
Si marca la pestaña de documentos, verá los términos incrustados en el índice, que serán algo así como $/Pregunta/temas
Esto debería darle la ruta para ingresar su Question.search, algo como:
Pregunta.búsqueda('$/Pregunta/temas/id:1')