我的索引包含人的信息,姓名,年龄,电话和电子邮件等等
我在和年龄打交道。我把年龄分组有点像日期范围功能。在
我的范围是:
0 to 10
11 to 20
21 to 30
31 to 40 etc etc
当我进行查询时:
^{pr2}$它返回21到30范围内我想要的所有年龄,但也返回3岁。在
?q=*:*&facet=true&fq=age:[11+TO+20]
这会执行相同的操作,但返回的是2岁。在
?q=*:*&facet=true&fq=age:[0+TO+10]
这会执行相同的操作,但返回的是年龄1。 有人能给我解释一下吗?在
在网上搜索时,我发现Solr将所有数据索引为字符串,即使您将其定义为整数。它仍然是Solr中的一个字符串:
<field name="age" type="integer" indexed="true" stored="true"/>
所以我需要做的是:
<field name="age" type="sint" indexed="true" stored="true"/>
如果你想对你的整数排序,我假设“sint”类型是专门为此设计的。在
干杯
在您的请求中,您没有任何facet queries。您正在使用filter queries。这会缩小你的成绩。在
也许你可以试着加一些方面.查询,并将结果从面.计数在你上面的问题上。至少这会告诉你solr认为在不同年龄段有多少结果:
我对solr一无所知,但我想它会把你的范围按字母顺序而不是数字来处理。在
您可能想看看this answer,它有指向讨论一个非常相似问题的各种文档的链接
相关问题 更多 >
编程相关推荐