Zend搜索Lucene数值范围搜索

问题描述:

我很难确定我对Zend Search Lucene如何索引和搜索整数范围的误解。Zend搜索Lucene数值范围搜索

在下面的例子中,我期望输出为1,但它总是2(两个结果)。任何提示将不胜感激。

<?php 

require_once 'Zend/Loader/Autoloader.php'; 
$loader = Zend_Loader_Autoloader::getInstance(); 

$search = Zend_Search_Lucene::create('test.index'); 

$doc = new Zend_Search_Lucene_Document(); 
$doc->addField(Zend_Search_Lucene_Field::Text('foo', 'Hello')); 
$doc->addField(Zend_Search_Lucene_Field::Keyword('bar', 100)); 
$search->addDocument($doc); 

$doc = new Zend_Search_Lucene_Document(); 
$doc->addField(Zend_Search_Lucene_Field::Text('foo', 'Hello')); 
$doc->addField(Zend_Search_Lucene_Field::Keyword('bar', 200)); 
$search->addDocument($doc); 
$search->commit(); 

var_dump(count($search->find('foo:Hello AND bar:[050 TO 150]'))); 
+2

不要使用zend lucene。它比其他Lucene端口慢100倍,使用更多内存,甚至不开始支持完整的lucene功能集,并且充满了bug。几个月前我用Solr取代了zend lucene,并且从不回头。 – 2009-11-19 01:13:51

我会尝试改变激活addField命令:

$doc->addField(Zend_Search_Lucene_Field::Keyword('bar', '100')); 

也就是说,使用字符串而不是整数。如果这不起作用,也许你应该使用Zend_Search_Lucene_Field::Text类型。