我用你的两个类创建了一个基本应用程序(Grails 1.3.5,Searchable 0.5.5.1),搜索“country:NL”对我有用。你记得在尝试搜索之前调用 index() 吗?
grails create-app search
grains install-plugin searchable
人:
class Person {
static searchable = {
address component: true
}
Address address
}
地址:
class Address {
static belongsTo = Person
static searchable = {
root false
}
String country
}
引导程序:
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 并搜索 country:NL 并返回第 1 个人。
如果你想看看 Searchable 在字段/索引等方面做了什么 - Luke 是一个非常方便的工具(只需下载可执行的 JAR):http ://code.google.com/p/luke/
索引文件位于
<user.home>/.grails/projects/<project name>/searchable-index/development/index
干杯
李