我想在可序列化的域中使用可搜索的插件

时间:2012-03-29 13:54:06

标签: grails plugins dns serializable searchable

我想在可序列化的域中使用可搜索的插件。

现在的问题是,如果我添加此代码,它就不会编译:

  

类Product实现Serializable {

     

静态瞬变= ['searchable']

     

static searchable = true

我不知道这个可搜索的插件是如何工作的.. 此外,我还在域Product中拥有hasMany和belongsTo关系。 其他人也是可序列化的域

所以请大家告诉我使这个域可搜索的正确方法

1 个答案:

答案 0 :(得分:0)

首先,你不需要那里的瞬态定义。这就是您开始使用的全部内容:

    static searchable = true

您可以通过转到“http:// localhost:8080 / YOUR-APP-NAME-HERE / searchable”进行测试。如果您确实添加了任何产品,则可以使用该URL搜索域中的一个简单字段(例如,说出一个String productName字段)。

一旦确定它正常工作,您可以在表单上放置搜索字段,并向产品控制器添加一些自定义方法以使用搜索功能:

    //search form
    <form controller="product" action="searchForProducts" >
       <g:textField name="query" />
       <input type="submit" value="search" />
    </form>

    //ProductController
    def searchForProducts = {
      if(params.query) {
        def products = Product.search(params.query).results
        return [productInstanceList: products]
      }
    }

只要你的hasMany引用也可以搜索,你应该能够在搜索中包含这些引用。我还没有这么做,所以我对细节并不积极。