lucene
  • zend-framework
  • zend-lucene
  • 2011-12-15 2 views 0 likes 
    0

    У меня есть эти поля в индексеКак Zend Lucene обрабатывает числовой диапазон поиска?

    id name     genders   ages 
    1  "John Doe and Co."  "male male"  "18 20" 
    2  'Mr. and Mrs. Joe Dee' "male female" "25 27" 
    

    и вот код для извлечения оба ряда

    $min_age = '19' 
    $max_age = '26'; 
    
    $ages_query = new Zend_Search_Lucene_Search_Query_Range(new Zend_Search_Lucene_Index_Term($min_age, 'ages'), new Zend_Search_Lucene_Index_Term($max_age, 'ages'), TRUE); 
    
    $lucene_query = new Zend_Search_Lucene_Search_Query_Boolean(); 
    $lucene_query->addSubquery($ages_query, null); 
    

    Я только вернуть вторую строку. Почему я не получил первую строку, когда она явно должна быть возвращена на основе запроса диапазона?

    ответ

    0

    Это неправильный формат для поля возрастов, вы должны разбить на два поля

    age_from : 18 
    age_to : 20 
    

    запрос: -

    +age_from:[19 TO *] 
    +age_to:[* TO 26 *] 
    

    Я не уверен, что вы связаны с этим вопросом или нет: Zend Lucene and range search on a field with multiple values

    Но идея не хранить CSV в lucene.

    Смежные вопросы