0
我有一個搜索模式設置爲:的Lucene /檢索插件 - Grails的不重建索引有許多
class Tag{
def searchable = true
String name
}
class PersonTag{
static belongsTo = [person: Person]
static searchable = {
tag(component: true)
person(component: true)
}
static PersonTag addTag(String name, Person person){
if(person && person.id){
def tag = Tag.findOrCreate(name)
def t = new PersonTag(tag:tag, person:person)
t.save(flush:true)
return t
}
}
}
class Person{
static searchable = {
name boost: 2.0
tags component:true
}
}
什麼我的工作是通過標籤搜索「人」。當我的服務器啓動時,它會索引所有內容,並且所有現有標籤都可以工作如果我添加一個新標籤,則在服務器重新啓動之前我無法搜索它。但是,如果我更改了像人名這樣的簡單屬性,我可以在不重新啓動的情況下搜索它。我所有對標籤的更改都是通過PeopleAdminController.
關於爲什麼通過標籤搜索無效的任何建議?我甚至嘗試通過domainInstance.reindex()以及控制器中的searchableService手動索引/重新索引Person,Tag和PersonTag。
我在不同的控制器PeopleController
搜索人員:
def search(){
def result = People.search("${params.q}")
render (view: '/searchable/search.gsp' , model:[searchResult: result])
}