Exemple #1
0
 /**
  * Фильтры сделаны нестандартным для Lucene способом; оправдания следующие:
  *   - возможно, в будущем в модуле будет свой парсер, и он будет обрабатывать
  *     ситуации с синонимами и проч. переписыванием запросов, e.g.:
  *     (word1 word2) → (word1 word2 syn2); "word1 word2" → ("word1 word2" OR "word1 syn2")
  *   - чтобы сделать через addFilter(), нужно создать дублирующие классы или класс-прокси
  *     (или отказаться от идеи возможного использования фильтров netcat с
  *     другими поставщиками поиска, которые [*может быть*] будут)
  *   - стандартные фильтры создают множество временных объектов
  *     (каждый фильтр, если он что-то сделал, создает новый токен)
  *
  * @param string $term
  * @return array может содержать 0 (стоп-слова), 1 или несколько (синонимы) элементов
  *
  */
 protected function apply_nc_filters($term)
 {
     $context = nc_search::get_current_context();
     return nc_search_extension_manager::get('nc_search_language_filter', $context)->stop_on(array())->apply('filter', array($term));
 }