Строка поиска с соотношением типа find all, где значение gt 1:1

#plugins #grails #checkbox #searchable

#Плагины #grails #флажок #доступно для поиска

Вопрос:

У меня есть свойство в объекте домена и таблице, которые имеют значения 1:1, 2:1; 3:1. Я использую плагин с возможностью поиска для поиска на основе этого свойства, например, я хочу получить записи, соотношение которых больше 1: 1. Это свойство отображается в виде флажка в форме, и когда я устанавливаю флажок, нажимаю на Поиск, я должен получить все записи с соотношениями, превышающими 1: 1. Вот мой тег и метод:

 tag: <input type="checkbox" name="query" value=="1:1" />

search method: 
//Ratio greater than 1:1
if(params.query[20]){
    String searchTerm = "2:1"
    println searchTerm
    return [searchResult: searchableService.search(searchTerm, params)]
}
  

Я не могу получить набор результатов. Пожалуйста, дайте мне знать, как это сделать.

Спасибо ayrus

Ответ №1:

Я не думаю, что это возможно при индексации текста, если только набор возможных значений не довольно ограничен — например, только ‘2:1’, ‘1:1’ и «1:2». В последнем случае вы можете просто указать явный список значений.

Можно ли разделить поле на 2 числовых элемента?

Теперь даже невозможно корректно выполнить поиск с помощью Hibernate, если допустимы такие значения, как ‘7: 7’. Если возможны только ‘1: X’ и ‘X: 1’, то я бы просто выбрал

 DomainClass.withCriteria {
  like(score, '%:1')
  ne(score, '1:1')
}