2011-04-09 4 views
0

내에서 검색 나는 다음과 같은 젠드 루씬 지수젠드 루씬 - 범위

 $doc->addField(Zend_Search_Lucene_Field::UnStored('keywords', $job->getKeywords())); 
     $doc->addField(Zend_Search_Lucene_Field::UnStored('title', $job->getTitle())); 
     $doc->addField(Zend_Search_Lucene_Field::UnStored('region', $job->getRegion())); 
     $doc->addField(Zend_Search_Lucene_Field::keyword('minSalary', $minSalary)); 
     $doc->addField(Zend_Search_Lucene_Field::keyword('maxSalary', $maxSalary)); 
     $doc->addField(Zend_Search_Lucene_Field::UnStored('type', $job->getType())); 

를 생성하는 코드 내 검색 쿼리를 다음

$query = 'minSalary:[0 TO 20000]'; 

내가 누구 minSalary이 모든 작업을 얻기 위해 노력하고있다가 이하인 20000하지만이 얻을 결과는 다음 minSalary와 일자리를 가지고는

110000 
100000 
20000 
10000 

수있는 사람 a를 값 이것에 관한 dvice?

감사 B는

답변

1

내가 대신 숫자 값의 문자열을 사용하는 것이 좋습니다. 색인 생성 과정에서 길이가 같은 문자열 (예 : 0001000)의 모든 숫자 값 (예 : 1000)을 변환합니다. 따라서 0에서 20000까지의 minSalary를 검색하려는 경우 검색어 문자열은 다음과 같아야합니다.

$query = "minSalary:[0000000 TO 0020000]";