Python 带整数的Solr刻面范围

Python 带整数的Solr刻面范围,python,django,solr,Python,Django,Solr,我的索引包含人们的信息、姓名、年龄、电话和电子邮件等 我在考虑年龄。我对年龄分组有点像日期范围功能 我的范围是: 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

我的索引包含人们的信息、姓名、年龄、电话和电子邮件等

我在考虑年龄。我对年龄分组有点像日期范围功能

我的范围是:

    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中的一个吗?

我对solr一无所知,但我猜它把你的范围视为字母顺序而不是数字


您可能想查看哪些文件有链接,这些链接指向您的请求中讨论非常类似问题的各种文件,但您没有任何链接。您正在使用。这将缩小你设定的结果范围

也许您可以尝试向请求中添加一些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]

通过浏览web,我发现Solr将所有数据都作为字符串进行索引,即使您将其定义为整数。在Solr中它仍然是一个字符串:

所以我需要做的是:

如果您想对整数进行排序,这就是方法,我假设“sint”类型是专门为此而设计的


干杯

请在“年龄”字段的schema.xml行上留言。您也可以发布完整的Solr请求。。SolrSchema定义的结果是:这是完整的请求。您最近是否在不重新构建索引的情况下更改了模式?由于Lucene是底层引擎,所有索引值都是按字典顺序排序的。solr中的“sint”数据类型表示可排序的int,它按预期对整数值进行排序。