【问题标题】:Zend Lucene Lexicographical Range Search Returning Non-Relevant ResultsZend Lucene 词典范围搜索返回不相关的结果
【发布时间】:2011-03-31 01:22:35
【问题描述】:

我正在使用 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 文档。按字典顺序对结果进行排序的范围查询。但我的问题仍然存在。

【问题讨论】:

    标签: zend-framework zend-search-lucene


    【解决方案1】:

    我不知道为什么会这样,所以我在做一个循环:

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

    创建一个查询,例如:

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

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

    【讨论】: