Регулярное выражение Solr не работает

#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)