Zend Search Lucene числовой символ подстановки - PullRequest
2 голосов
/ 26 апреля 2011

Я использую реализацию Zend Lucene Search для проекта, и, как и многие новички, сразу поняли, что числа не были проиндексированы. Так что с некоторыми поисками я выяснил, как изменить анализатор, чтобы включить числа, используя:

Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());

Но хотя числа работают сейчас, они не рассматриваются как «текст» (то есть по определению ($this->_pattern->text). Поэтому, если я попытаюсь выполнить поиск по шаблону, используя, скажем, 20234 * (или даже 'C13A *' - все, в котором число появляется как один из 3 предыдущих символов), возвращается исключение:

'В начале шаблона требуется не менее 3 символов без подстановки' ... в wildcard.php

В последний раз, когда я проверял, числа НЕ были подстановочными знаками!

Я видел, как некоторые другие использовали исправление анализатора выше, чтобы позволить индексировать числа, и у них нет этой проблемы при поиске. Ввод 20234 * фактически работает в их случае.

К сожалению, никто, похоже, не знает, как устранить неполадки / изменить это поведение, и я прочитал много контента для поиска только для того, чтобы понять, что мне определенно нужна помощь с этим.

Еще одна вещь, которую я попытался, состояла в том, чтобы просто изменить требование (в wildcard.php) на «0», что устраняет эту ошибку (хотя и не совсем правильно), но вызывает новое:

«Достигнуто ограничение по количеству запросов» в ... wildcard.php

Даже если каждое число рассматривается как отдельный термин, я не понимаю, как 20234 * может нарушить ограничение запроса.

Так что, конечно, сейчас я могу изменить переменную $ maxTerms, но, очевидно, это не решение, и, скорее всего, это приведет к проблемам в работе / большему количеству ошибок.

...