Zend Lucene 词典范围搜索返回不相关结果
我正在使用 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 文档。按字典顺序对结果进行排序的范围查询。但我的问题仍然存在。
I am using Zend Lucene to build a search feature for my website. All well and good.
Understanding that Lucene does searches lexicographically (e.g.
1,
110,
1111444,
2,
3,
4,
499238492834798,
5,
etc)
I have padded my numbers to 3 digits (ranging from 010 to 990).
When I do a range search for values 110 to 160 (e.g. fieldname:[110 TO 160])it is returning results for 040! Logically this is wrong as all the numbers would start with a 1 (although it would still search for 11, 12, 13, 14, 15 and 16) so it should not match this result!
Why is this happening, and how do I stop it from doing so?
[edit]
I misread the Zend Documentation. The Range Query that sorts results lexicographically. But my problem persists.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我无法找出为什么会这样,所以我正在做一个循环:
创建一个查询,例如:
它确实返回我想要的结果。
I am unable to find out why this is acting like this, so I'm doing a loop:
creates a query such as:
which does return the results I want exactly.