Я создал базовое приложение (Grails 1.3.5, Searchable 0.5.5.1) с двумя вашими классами, и поиск 'country: NL' работает для меня.Помните, вы вызывали index () перед попыткой поиска?
grails create-app search
grains install-plugin searchable
Person:
class Person {
static searchable = {
address component: true
}
Address address
}
Адрес:
class Address {
static belongsTo = Person
static searchable = {
root false
}
String country
}
Bootstrap:
class BootStrap {
def init = { servletContext ->
def p1 = new Person(address:new Address(country:'NL')).save()
def p2 = new Person(address:new Address(country:'DE')).save()
def p3 = new Person(address:new Address(country:'NZ')).save()
Person.index()
}
def destroy = {
}
}
Затем я перешел к / searchable и искал страну: NL и вернул человека 1.
Если вы хотите посмотреть, что делает Searchable под прикрытием в отношении полей / индексов и т. Д. -Люк - очень удобный инструмент (просто скачайте исполняемый файл JAR): http://code.google.com/p/luke/
Индексные файлы находятся в
<user.home>/.grails/projects/<project name>/searchable-index/development/index
ура
Ли