grails アプリケーションで検索可能なプラグインを使用して、次の方法で「Offering」インスタンスを検索しています。
オファリング クラスで次のマッピングを使用してセットアップを検索します
class Offering {
static searchable = {
only: ['title', 'description']
}
String title
String description
Category category
Location location
BigDecimal price
PricePeriod pricePeriod
static belongsTo = [user: SecUser]
static constraints = {
title(blank: false, maxSize: 100)
description(blank: false, maxSize: 10240)
category(nullable: false)
location(nullable: false)
price(nullable: true, scale: 2)
pricePeriod(nullable: true)
}
public String toString() {
return title
}
}
検索可能なサービスへの呼び出し
def search = {
must(queryString(params.query))
}
def searchResult = searchableService.search(search, params)
予想どおり、これにより、オファリング インスタンスのマップされたプロパティから適切なヒットが返されます。お供え物集
ここでやりたいことは、検索クエリだけでなく、location の Offerings 子要素でも検索することです。具体的には、子 Location インスタンス内の「locationName」フィールドです。
したがって、クエリ「ディナー」と場所「ブリスベン」で検索すると、「ブリスベン」に一致する「locationName」プロパティを持つ子ロケーション インスタンスで「ディナー」に一致するオファリングのコレクションを取得したいと考えています。
検索可能なプラグインを使用して、このようなものをどこから実装し始めるかについてのアイデアはありますか?
ロケーションクラス
class Location {
String locationName
Location locationParent
String postcode
static hasMany = [locations: Location]
static constraints = {
locationName(blank: false, unique: true)
locationParent(nullable: true)
postcode(nullable: true)
}
public String toString() {
return locationName
}
}
ご協力いただきありがとうございます