0

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

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

类产品实现可序列化{

静态瞬变=['可搜索']

静态可搜索 = true

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

所以请 cud 任何人告诉我使这个域可搜索的正确方法

4

1 回答 1

0

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

    static searchable = true

您可以通过转到“http://localhost:8080/YOUR-APP-NAME-HERE/searchable”进行测试。如果您实际上添加了任何产品,则可以仅使用该 URL 搜索域中的简单字段之一(例如字符串 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 引用而言,只要它们也是可搜索的,您就应该能够将它们包含在搜索中。我还没有这样做,所以我对细节并不积极。

于 2012-03-29T22:08:51.950 回答