Диапазон граней Solr с целыми числами - PullRequest
2 голосов
/ 14 декабря 2009

Мой индекс содержит информацию о людях, имя, возраст, адрес электронной почты и т. Д.

Я смотрю на возраст. Я группирую возрасты вроде функции диапазона дат.

Мои диапазоны:

    0 to 10
    11 to 20
    21 to 30
    31 to 40 etc etc

Когда я делаю запрос:

    ?q=*:*&facet=true&fq=age:[21+TO+30]

Возвращает все возрасты, которые я хочу, в диапазоне от 21 до 30, но также возвращает возраст 3.

    ?q=*:*&facet=true&fq=age:[11+TO+20]

это делает то же самое, но возвращает возраст 2.

    ?q=*:*&facet=true&fq=age:[0+TO+10]

это делает то же самое, но возвращает возраст 1. Может кто-нибудь объяснить мне это - это в solr?

Ответы [ 3 ]

3 голосов
/ 21 декабря 2009

В вашем запросе у вас нет фасетных запросов . Вы используете фильтр запросов . Что сузит ваши результаты вниз.

Возможно, вы могли бы попытаться добавить некоторые facet.query к вашему запросу и скопировать результаты из области facet.counts, в ваш вопрос выше. По крайней мере, это скажет вам, сколько результатов, по мнению solr, в разных возрастных диапазонах:

&facet.query=age:[21+TO+30]&facet.query=age:[11+TO+20]&facet.query=age:[0+TO+10]&facet.query=age:[*+TO+2]&facet.query=age:[*+TO+3]
3 голосов
/ 22 декабря 2009

По результатам поиска в Интернете я обнаружил, что Solr индексирует все данные в виде строк - даже если вы определяете их как целое число. Это все еще строка в Solr:

<field name="age" type="integer" indexed="true" stored="true"/>

Итак, что мне нужно было сделать:

<field name="age" type="sint" indexed="true" stored="true"/>

Если вы хотите упорядочить свои целые числа, это способ, я предполагаю, что тип "sint" был разработан специально для этого.

Приветствия

1 голос
/ 14 декабря 2009

Я ничего не знаю о solr, но я предполагаю, что он рассматривает ваши диапазоны как в алфавитном, а не числовом формате.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...