2012-01-16 3 views
0

Я пытаюсь реализовать алфавитный диапазон для выполнения запроса в Solr 3.3. Пользователь хочет получить список ресторанов, названия которых начинаются с (например) от A до G. Пробовал с функцией «frange», но включает все поля, в которых есть буква. Я хочу получить рестораны, которые называет СТАРТ с конкретным письмом.Solr ALPHABETICAL RANGE QUERY

Что-то вроде: "Получить все рестораны от А до G": (А * и G *), но не ( и г).

Спасибо

ответ

2

Используйте name:[a TO h] где name нетоновое поле. При необходимости создайте для этого отдельную копию поля.

Если вы попробуете это на токенизированное поле, то это будет соответствовать всем именам, содержащие слово, которое начинается с одной из этих букв. Кроме того, вам нужно «увеличить» последнюю букву диапазона. Если это z, замените его на *. Например, если пользователь ищет w до z, тогда запрос должен быть name:[w TO *].

0

Вы пробовали name:[a TO g]?

+0

Я уверен, что это не будет делать то, что хочет OP. –

+0

Да, я пробовал, но не получает результаты, начинающиеся с этих букв. Вместо этого он соответствует каждому «имени», содержащему эти буквы – mafelstroh