2009-11-19 6 views
4

Zend Search Lucene이 범위에서 정수를 어떻게 색인하고 검색하는지에 대한 오해를 파악하는 데 어려움이 있습니다.Zend Search Lucene 수치 범위 검색

다음 예에서 출력은 1이지만 항상 2입니다 (두 결과 모두). 모든 힌트를 많이 주시면 감사하겠습니다.

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

, 정수 대신 문자열을 사용 : 나는 addField을 변경하려고 할 것이다

<?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

젠드 루신을 사용하지 마십시오. 문자 그대로 루씬 포트보다 100 배 이상 느리고, 메모리를 많이 사용하며, 전체 루씬 기능을 지원하지도 않으며, 버그로 가득합니다. 나는 전에 zend lucene를 Solr 달로 바꿨고 결코 되돌아 보지 않았다. –

답변

0

는 명령. 그래도 문제가 해결되지 않으면 Zend_Search_Lucene_Field::Text 유형을 사용해야합니다.