我正在使用Zend Lucene为我的网站构建搜索功能。一切都很好。
了解Lucene按字典顺序进行搜索(例如,
1,
110,
1111444,
2,
3,
4,
499238492834798,
5,
等)
我已将我的数字填充为3位数(范围从010到990)。
当我进行范围搜索值110到160(例如,字段名称:[110到160])时,它返回040的结果!逻辑上这是错误的,因为所有数字都以1开头(尽管它仍会搜索11,12,13,14,15和16),所以不应该匹配此结果!
为什么会发生这种情况,如何阻止它这样做?
[编辑] 我误读了Zend文档。范围查询按字典顺序对结果进行排序。但我的问题仍然存在。
答案 0 :(得分:1)
我无法找出为什么这样做,所以我正在做一个循环:
for ($i = 0; $i < 50; $i + 10)
{
$queryString .= 'fieldname:' . ($term + $i) . ' ';
}
创建一个查询,例如:
fieldname:110 fieldname:120 fieldname:130 fieldname:140 fieldname:150 fieldname:160
确实会返回我想要的结果。