#regex #solr #mod
#регулярное выражение #solr #мод
Вопрос:
Всем доброе утро,, это мой первый раз, когда я использую solr после прочтения некоторого документа о q и fq, я хочу сделать запрос, который возвращает все строки, например, с последней цифрой, равной 3.
Я пытался использовать регулярное выражение, подобное условию id:/.*3/
, но это не возвращает никаких данных.
Теперь я хочу сделать это с помощью функции mod, пожалуйста, объясните ваше решение.
Спасибо за помощь.
Ответ №1:
Для этого вам не нужно регулярное выражение, q=id:*3
оно работает прямо из коробки.
Вы можете применить запрос функции к своему полю с помощью синтаксического анализатора {!frange}, который вернет любой документ, в котором результат функции, стоящей за ним, возвращает значение в пределах определенного диапазона.
q={!frange l=0 u=0}mod(id, 3)
.. предполагая, что идентификатор является целым числом. Это даст вам только те значения, в которых функция вычисляется как 0
, поскольку и верхняя, и нижняя границы равны 0 (и по умолчанию нижняя / верхняя включены в диапазон).
Комментарии:
1. большое спасибо, я делаю что-то вроде этого,, но я занят, поэтому я забыл удалить вопрос
q={!frange l=3 u=3}mod(id, 10)