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,它按预期对整数值进行排序。