Intereting Posts
Сравнение десятичных знаков в PHP Yii: поиск HAS_MANY Получение папок с помощью PHP glob – неограниченный уровень глубины Проверка XHTML5 в PHP? Создание множества элементов DOM. какой метод быстрее? Эхо по HTML или с использованием класса PHP DOM? jQuery переключает элементы с классом только в родительском div Как задать чередующиеся строки таблицы разными цветами фона с помощью PHP Скрыть или зашифровать URL-файлы файлов? Архитектура для обработки данных из JSON / ассоциативного массива для динамического заполнения раскрывающегося списка Какой механизм баз данных MySQL лучше хранить для сеансов и данных сеанса: MyISAM или InnoDB? drupal разделяет заголовок и нижний колонтитул кода шаблона Как отредактировать внешний файл css с PHP? Модуль не может быть инициализирован zf3 уже искали Интернет Многомерная итерация массива Как я могу использовать in_array, если игла представляет собой массив?

Zend Framework Lucene Boolean / «Google» -поиск

Я работаю над приложением по адресу http://demos.zatechcorp.com/codeigniter/

В своем текущем воплощении, запущенном на моей машине, я загрузил ZendFramework внутри Codeigniter и создал индекс, например:

// ... Some code that loads all the markets foreach ($markets as $market) { $doc = new Zend_Search_Lucene_Document(); // Id for retrieval $doc->addField(Zend_Search_Lucene_Field::UnIndexed('id', $market->id)); // Store document URL to identify it in search result. $doc->addField(Zend_Search_Lucene_Field::Text('url', $market->permalink)); // Index document content $doc->addField(Zend_Search_Lucene_Field::UnStored('contents', $market->description)); // Title $doc->addField(Zend_Search_Lucene_Field::Text('title', $market->title)); // Phone $doc->addField(Zend_Search_Lucene_Field::Keyword('phone', $market->phone)); // Fax $doc->addField(Zend_Search_Lucene_Field::Keyword('fax', $market->fax)); // Street $doc->addField(Zend_Search_Lucene_Field::Keyword('street', $market->street)); // City $doc->addField(Zend_Search_Lucene_Field::Keyword('city', $market->city)); // State $doc->addField(Zend_Search_Lucene_Field::Keyword('state', $market->state)); // Zip $doc->addField(Zend_Search_Lucene_Field::Keyword('zip', $market->zip)); // Type $doc->addField(Zend_Search_Lucene_Field::UnIndexed('type', 'market')); // Store Document $index->addDocument($doc); } 

В моем поиске я делаю это:

  $hits = $index->find($q); 

Это работает с простыми словами, но когда я хочу сделать поиск, например «Sheba Foods» (включая цитаты), он возвращает один результат, но не тот, который даже не имеет слова «Sheba».

Я отошел от полнотекстового поиска MySQL из-за его очевидных проблем и не смог добиться этого.

Я смотрел на метод Zend_Search_Lucene_Search_QueryParser :: parse (). Ответ лежит в этом методе?