0

我正在使用 Zend Lucene 为我的网站构建搜索功能。一切都很好。

了解 Lucene 会 按 字典顺序 进行 搜索 ( 例如
1、110、1111444、2、3、4、499238492834798、5







我已将我的号码填充为 3 位数字(范围从 010 到 990)。

当我对值 110 到 160 进行范围搜索时(例如字段名:[110 TO 160]),它返回的结果为 040!从逻辑上讲,这是错误的,因为所有数字都以 1 开头(尽管它仍会搜索 11、12、13、14、15 和 16)所以它不应该匹配这个结果!

为什么会发生这种情况,我该如何阻止它这样做?

[编辑] 我误读了 Zend 文档。按字典顺序对结果进行排序的范围查询。但我的问题仍然存在。

4

1 回答 1

1

我无法找出为什么会这样,所以我正在循环:

for ($i = 0; $i < 50; $i + 10)
{
 $queryString .= 'fieldname:' . ($term + $i) . ' ';
}

创建一个查询,例如:

fieldname:110 fieldname:120 fieldname:130 fieldname:140 fieldname:150 fieldname:160

它确实返回了我想要的结果。

于 2010-11-19T14:59:17.277 回答