Использование Zend Search Lucene с подстановочными знаками

Я пытаюсь подставить поле с помощью Zend search Lucene.

$index = Zend_Search_Lucene::open("/data/my_index1");

$doc = new Zend_Search_Lucene_Document();

$doc->addField(Zend_Search_Lucene_Field::Text('date',$date->format('dmY')));

$index->addDocument($doc);

$index->updateIndex();

$hits  = $index->find('2012*');

Последняя строка не работает, потому что моя дата что-то вроде 02062012. Если я попытаюсь использовать $hits = $index->find('*2012*');, это тоже не сработает.

Любая идея?


person Gabriel Muñumel    schedule 02.06.2012    source источник
comment
Вы должны проверить, правильно ли проиндексирована дата. Некоторые анализаторы не токенизируют числа и даты. Вы должны просмотреть свой индекс с помощью Люка, чтобы увидеть, содержит ли он ожидаемые термины.   -  person dbrumann    schedule 02.06.2012
comment
Я думаю, что с индексом все в порядке, потому что, если я попробую с $hits = $index->find('02062012');, он будет работать как надо.   -  person Gabriel Muñumel    schedule 02.06.2012
comment
Вы пробовали $index->find('0206*');? Я не уверен, но я думаю, что использование звездочки в вашем запросе не работает, потому что он ищет термины, содержащие 2012, за которым следует что-то еще.   -  person dbrumann    schedule 03.06.2012


Ответы (1)


Вы также должны убедиться, что ваша конфигурация поиска допускает начальный «*», так как это не используется по умолчанию в Lucene.

person Mark Leighton Fisher    schedule 04.06.2012