我是solr和尝试范围查询的新手#34; TO"。但是我无法理解正确的行为。
以下是我在表格中的字段:
order_range int
schema.xml包含:
<fieldType name="int" class="solr.IntField"/>
和
<field name="order_range" type="int" indexed="true" stored="true"/>
但是,当我发出后,查询
order_range:[20 TO *]
返回order_range小于20的文档。 根据solrwiki,
field:[100 TO *] finds all field values greater than or equal to 100
有人可以帮我解决我错过的问题吗?
答案 0 :(得分:3)
对于数值范围查询,我建议使用以下两种字段类型之一:
<fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>
<fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/>
根据schema.xml中的文档:
对于更快范围的查询,请考虑tint / tfloat / tlong / tdouble类型。
使用int字段类型时,它按字典顺序排序。
更多细节:http://www.slideshare.net/VadimKirilchuk/numeric-rangequeries