Я использую реализацию 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, но, очевидно, это не решение, и, скорее всего, это приведет к проблемам в работе / большему количеству ошибок.