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]')));
答
我会尝试改变激活addField命令:
$doc->addField(Zend_Search_Lucene_Field::Keyword('bar', '100'));
也就是说,使用字符串而不是整数。如果这不起作用,也许你应该使用Zend_Search_Lucene_Field::Text
类型。
不要使用zend lucene。它比其他Lucene端口慢100倍,使用更多内存,甚至不开始支持完整的lucene功能集,并且充满了bug。几个月前我用Solr取代了zend lucene,并且从不回头。 – 2009-11-19 01:13:51