Zend Lucene - не может искать номера - PullRequest
6 голосов
/ 16 мая 2010

Используя Zend Lucene, я не могу искать номера в полях описания

Добавил это так:

$doc->addField(Zend_Search_Lucene_Field::Text('description', $current_item['item_short_description'], 'utf-8'));

Поиск в Google показал, что применение следующего кода должно решить проблему, но это не так:

Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());

Какие-нибудь мысли?

Ответы [ 3 ]

8 голосов
/ 16 февраля 2011

Вы должны установить анализатор по умолчанию дважды : как в процессе индексации, так и в процессе поиска.

Используйте строку кода сверху:

Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());
1 голос
/ 24 июня 2010

Использовали ли вы эту команду до или после вызова Zend_Search_Lucene :: open ()?

Предварительный вызов определенно работает.

0 голосов
/ 16 мая 2010

Я не уверен насчет 'zend', но для работы с числом в люцене вам нужно использовать следующую технику:

  • Чтобы поместить int в документ, используйте следующее:

    document.Add (новое поле (FIELD_SPEC, NumberTools.LongToString (YOUR_INT), Field.Store.YES, Field.Index.UN_TOKENIZED));

  • Чтобы определить значение, используйте термин: термин (FIELD_SPEC, NumberTools.LongToString (YOUR_INT))

...