Поиск Grails не использует поле во время полнотекстового поиска

Домен (простой пример):

class House {
String address
String region
Long price
static searchable = { only = ['address', 'price', 'region'] }
} 

Я хочу искать по адресу с ценовым селектором

Поисковый запрос:

"${address} AND price: [100 TO 1000]"

Но если address='500' в результате поиска будет Дом с ценой 500. Мне нужно найти дом по адресу только House.address + House.region

1 ответ

Решение

Если я понял, вы хотите использовать значение ${address} для запроса только по атрибутам адреса и региона.

В этом случае, основываясь на "сложном" примере строки запроса на http://grails.org/Searchable+Plugin+-+Searching+-+String+Queries, ваша строка запроса может быть:

"+ (адрес:${адрес} ИЛИ регион:${адрес}) цена:[100 ДО 1000]"

  • Совпадения должны иметь значение ${address} для адреса или значение ${address} для региона и значение от 100 до 1000 для цены.

Примечание: ваша входная переменная имеет то же имя атрибута сущности, "адрес", который может вызвать некоторую путаницу при попытке понять строки запроса, используя их обе. Хотя это и не нужно, вы можете изменить это для более удобочитаемых строк запроса.

Другие вопросы по тегам