我是新的Zend Framework 2和ZendSearch Lucene。 我的数据库表有三列整数,第一列是id。 第二个是发布值(1到3),第三个是类别值(1到5)。 该表看起来像这样:ZendSearch Lucene的布尔查询不正确的工作与数字
| id | publish | category |
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 2 | 3 |
| 5 | 2 | 4 |
我用以下查询测试了这个:
“publish:1”返回正确的id为1,2,3;
“发布:2”返回正确的id 4,5;
“发布:3”返回不正确的id 1,2,3,4,5;结果应该是空的。
“发布:1 AND分类:1”返回正确的ID 1;
“发布:1和类别:3”返回正确的ID 3;
“发布:1和类别:4”返回正确的空结果;
“发布:1和类别:5”返回不正确的id 1,2,3;结果应该是空的。
当一个数字不存在时,结果不是空的,它包含所有的行。 有没有任何选项,当数字不存在时结果为空?
默认编码是UTF-8: \ ZendSearch \ Lucene \ Search \ QueryParser :: setDefaultEncoding('UTF-8'); ZendSearch \ Lucene \ Analysis \ Analyzer \ Analyzer :: setDefault(new \ ZendSearch \ Lucene \ Analysis \ Analyzer \ Common \ Utf8Num \ CaseInsensitive());
该id是未索引的,发布和类别是关键字。