В последнее время проектам компании необходима функция полнотекстового поиска. Некоторые люди в Интернете говорят, что можно использовать быстрый поиск, и они специально изучили его. Прочитав документ в течение длительного времени, я не мог его понять. Прочитав его в течение двух дней, я кое-что нашел, а затем начал проверять его с помощью документа. Я кое-что понимаю. Подводя итог, я надеюсь, что это поможет PHPer в будущем
Во-первых, установка.
wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2 tar -xjf xunsearch-full-latest.tar.bz2 cd xunsearch-full-1.3.0/ sh setup.sh
В процессе установки вам будет предложено ввести каталог установки (например,/usr/local/xunsearch) или выбрать каталог по умолчанию. Если вам будет предложено указать, какое программное обеспечение отсутствует, установите его в соответствии с подсказками.
Во-вторых, начинай
После установки введите каталог установки для выполнения
cd /usr/local/xunsearch
осуществлять
bin/xs-ctl.sh restart
Настоятельно рекомендуется добавить эту команду в сценарий запуска, чтобы программа службы поиска могла запускаться автоматически после каждой перезагрузки сервера. В системе Linux вы можете записать инструкцию сценария в файл/etc/rc.local.
В-третьих, проверьте условия работы PHP SDK, чтобы узнать, поддерживаются ли они.
/usr/local/xunsearch/sdk/php/util/RequiredCheck.php
IV. импортируйте содержимое MySQL в базу данных индекса быстрого поиска
В каталоге/usr/local/xunsearch/SDK/PHP/APP есть файл demo.ini. Вы также можете создать или переименовать его самостоятельно. Это библиотека индексов, как показано на рисунке после открытия
Идентификатор, заголовок и вступление-это поля таблицы в импортируемой базе данных. Тип под каждым полем указывает тип поля в быстром поиске. Существует несколько типов:
В соответствии с реальной ситуацией. Предположим, есть хорошая конюшня, товары. При использовании быстрого поиска для поиска товаров вам необходимо импортировать поля для поиска в таблице товаров в demo.ini
/usr/local/xunsearch/sdk/php/util/Indexer.php --rebuild --source=mysql://root:[email protected]/dbname --sql="SELECT id,title,intro FROM goods" --project=demo
V. напишите PHP – код для тестирования
require_once '/usr/local/xunsearch/sdk/php/lib/XS.php'; $XS = new \ XS ('demo '); // automatically use / usr / local / xunsearch / SDK / PHP / APP / demo.ini as the project configuration file $docs = $XS - > Search - > Search ('mountain bike '); // search mountain bike //Get search results $result=array(); foreach ($docs as $doc) { $arr=array(); $arr['id']=$doc->id; $arr['title']=$xs->search->highlight($doc->title); $arr['intro']=$doc->intro; $result[]=$arr; } print_r($result);
Выше приведен простейший поиск по одной таблице, но, поскольку это полнотекстовый индекс, можно выполнять поиск по нескольким таблицам. Что касается того, как использовать несколько таблиц, некоторые люди говорят, что содержимое нескольких таблиц можно сохранить во временной таблице, а затем информацию о временной таблице можно импортировать в библиотеку индексов, но они еще не пробовали. После проверки вы можете использовать представление MySQL для решения этой проблемы. Для получения подробных документов, пожалуйста, обратитесь к http://www.xunsearch.com/doc/