Maison > Article > développement back-end > Recherche en texte intégral Laravel xunsearch
Avant de commencer, il est fortement recommandé de parcourir la documentation officielle de xunsearch
Xunsearch est une solution de recherche en texte intégral hautes performances et complète .
Xunsearch est conçu pour aider les développeurs généraux à créer rapidement et facilement leurs propres moteurs de recherche en texte intégral pour les données massives existantes.
Cliquez ici pour plus de détails
代号 | 功能 | IP | 系统 |
---|---|---|---|
服务器A | 提供web服务 | 192.168.56.2 | centos7 |
服务器B | 提供 xunsearch 后端服务 | 192.168.56.3 | centos7 |
PHP version 7.0.13 n'a pas de cache installé. Il est recommandé d'installer un cache dans l'environnement de production
PHP 7.0.13 (cli) (built: Dec 21 2016 13:53:31) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Xdebug v2.5.0, Copyright (c) 2002-2016, by Derick Rethans
Connectez-vous au serveur B et exécutez la commande suivante pour installer. package d'installation
wget http://www.php.cn/ tar -xjf xunsearch-full-latest.tar.bz2
pour exécuter le script d'installation, suivez les invites, entrez principalement le répertoire d'installation du progiciel xunsearch Il est fortement recommandé de prévoir un répertoire séparé au lieu de le mélanger avec d'autres répertoires de logiciels. .
cd xunsearch-full-1.4.10/ sh setup.sh
L'interface interactive d'installation s'affichera. Appuyez ensuite sur Entrée directement pour installer sur le chemin par défaut
Ensuite, buvez une tasse de café et attendez un moment. L'invite de réussite de l'installation suivante apparaîtra. .
+==========================================+ | Welcome to setup xunsearch(full) | | 欢迎使用 xunsearch (完整版) 安装程序 | +------------------------------------------+ | Follow the on-screen instructions please | | 请按照屏幕上的提示操作以完成安装 | +==========================================+ Please specify the installation directory 请指定安装目录 (默认为中括号内的值) [/usr/local/xunsearch]: Confirm the installation directory 请确认安装目录:/usr/local/xunsearch [Y/n]Y Checking scws ... no Installing scws (1.2.3) ... Extracting scws package ... Configuring scws ... Compiling & installing scws ... Checking scws dict ... no Extracting scws dict file ... Checking libuuid ... no, try to install it Extracting libuuid package ... Configuring libuuid ... Compiling & installing libuuid ... Checking xapian-core-scws ... no Installing xapian-core-scws (1.2.22) ... Extracting xapian-core-scws package ... Configuring xapian-core-scws ... Compiling & installing xapian-core-scws ... Checking libevent ... no Installing libevent (2.0.21-stable) ... Extracting libevent package ... Configuring libevent ... Compiling & installing libevent ... Extracting xunsearch package (1.4.10) ... Configuring xunsearch ... Compiling & installing xunsearch ... Cleaning ... done +=================================================+ | Installation completed successfully, Thanks you | | 安装成功,感谢选择和使用 xunsearch | +-------------------------------------------------+ | 说明和注意事项: | | 1. 开启/重新开启 xunsearch 服务程序,命令如下: | | /usr/local/xunsearch/bin/xs-ctl.sh restart | | 强烈建议将此命令写入服务器开机脚本中 | | | | 2. 所有的索引数据将被保存在下面这个目录中: | | /usr/local/xunsearch/data | | 如需要转移到其它目录,请使用软链接。 | | | | 3. 您现在就可以在我们提供的开发包(SDK)基础上 | | 开发您自己的搜索了。 | | 目前只支持 PHP 语言,参见下面文档: | | /usr/local/xunsearch/sdk/php/README | +=================================================+
注意: 如果是生产环境iptables可能需要配置得严格,本文仅为测试
Configurez iptables, ignorez cette opération
vi /etc/sysconfig/iptables 加入, 下面两行 -A INPUT -p tcp -m state --state NEW -m tcp --dport 8383 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 8384 -j ACCEPT 重启iptables service iptables restart
Démarrez le service
/usr/local/xunsearch/bin/xs-ctl.sh -b inet startContenu de sortie de démarrage :
INFO: starting server[xs-indexd] ... (BIND:8383) INFO: starting server[xs-searchd] ... (BIND:8384)Configuration du serveur WebInstaller le SDK PHP xunsearch
cd project/root/path composer require --prefer-dist hightman/xunsearchCréer un fichier de configuration de projet, un projet correspond à un fichier de configuration, nom du projet Vous ne pouvez pas répéter
cp app\vendor\hightman\xunsearch\app\demo.ini app\config\search-demo.inipour modifier le contenu du fichier que vous venez de créer, où les adresses IP de server.index et server.search sont les adresses IP du serveur sur lequel se trouve le service xunsearch installé
;搜索配置文件示例 project.name = demo project.default_charset = utf-8 server.index = 192.168.56.4:8383 server.search = 192.168.56.4:8384 [pid] type = id [subject] type = title [message] type = body [chrono] type = numericModifiez le fichier app /routes/web.php, écrivez du code de test de recherche client
###################### 测试模块 #################### /* * 全文搜索测试部分 */ Route::get('/search/{key}', function ($key){ $xs = new XS(config_path('search-demo.ini')); $search = $xs->search; // 获取 搜索对象 $query = $key; $search->setQuery($query) ->setSort('chrono', true) //按照chrono 正序排列 ->setLimit(20,0) // 设置搜索语句, 分页, 偏移量 ; $docs = $search->search(); // 执行搜索,将搜索结果文档保存在 $docs 数组中 $count = $search->count(); // 获取搜索结果的匹配总数估算值 foreach ($docs as $doc){ $subject = $search->highlight($doc->subject); // 高亮处理 subject 字段 $message = $search->highlight($doc->message); // 高亮处理 message 字段 echo $doc->rank() . '. ' . $subject . " [" . $doc->percent() . "%] - "; echo date("Y-m-d", $doc->chrono) . "<br>" . $message . "<br>"; echo '<br>========<br>'; } echo '总数:'. $count; }); Route::get('/makedoc/{title}/{message}', function ($title, $message){ $xs = new XS('demo'); $doc = new XSDocument; $doc->setFields([ 'pid' => 1, 'subject' => $title, 'message' => $message, 'chrono' => time(), ]); // 用数组进行批量赋值 $xs->index->add($doc); });Utilisez un navigateur pour accéder aux deux itinéraires ci-dessus pour tester la fonction Accès :
http://Votre nom de domaine/makedoc/titre/content teste l'index généré
Exemple de test :http://你的域名/makedoc/关于 xunsearch 的 DEMO 项目测试/项目测试是一个很有意思的行为! http://你的域名/makedoc/测试第二篇/这里是第二篇文章的内容 http://你的域名/makedoc/项目测试第三篇/俗话说,无三不成礼,所以就有了第三篇
注意: 索引不是即时生效的 延迟大概在10秒左右
http://Votre fonction de recherche de nom de domaine/recherche/test de mots clésPar exemple, recherchez des mots clés项目
1. 关于 xunsearch 的 DEMO 项目测试 [99%] - 2011-08-26 项目测试是一个很有意思的行为! ======== 2. 项目测试第三篇 [100%] - 2011-08-26 俗话说,无三不成礼,所以就有了第三篇 ======== 总数:2Par En suivant les étapes ci-dessus, nous avons effectué l'exemple de recherche en texte intégral le plus simple.
Si vous souhaitez en savoir plus, veuillez lire la documentation officielle de xunsearch.
Xunsearch est une solution de recherche en texte intégral hautes performances et complète.Cliquez ici pour plus de détailsEnvironnement de test :Serveur Linux 2 :Xunsearch est conçu pour aider les développeurs généraux à créer rapidement et facilement leurs propres moteurs de recherche en texte intégral pour les données massives existantes.
PHP version 7.0.13 n'a pas de cache installé. Il est recommandé d'installer un cache dans l'environnement de production
PHP 7.0.13 (cli) (built: Dec 21 2016 13:53:31) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Xdebug v2.5.0, Copyright (c) 2002-2016, by Derick Rethans
Connectez-vous au serveur. B et exécutez les instructions suivantes pour installer, décompresser xunsearch et installer le package
wget http://www.php.cn/ tar -xjf xunsearch-full-latest.tar.bz2
exécutez le script d'installation et suivez les invites, en entrant principalement dans le répertoire d'installation du package logiciel xunsearch. Il est fortement recommandé de planifier un. répertoire séparé au lieu de le mélanger dans d’autres répertoires de logiciels.
cd xunsearch-full-1.4.10/ sh setup.sh
L'interface interactive d'installation s'affichera. Appuyez ensuite sur Entrée directement pour installer sur le chemin par défaut
Ensuite, buvez une tasse de café et attendez un moment. L'invite de réussite de l'installation suivante apparaîtra. .
+==========================================+ | Welcome to setup xunsearch(full) | | 欢迎使用 xunsearch (完整版) 安装程序 | +------------------------------------------+ | Follow the on-screen instructions please | | 请按照屏幕上的提示操作以完成安装 | +==========================================+ Please specify the installation directory 请指定安装目录 (默认为中括号内的值) [/usr/local/xunsearch]: Confirm the installation directory 请确认安装目录:/usr/local/xunsearch [Y/n]Y Checking scws ... no Installing scws (1.2.3) ... Extracting scws package ... Configuring scws ... Compiling & installing scws ... Checking scws dict ... no Extracting scws dict file ... Checking libuuid ... no, try to install it Extracting libuuid package ... Configuring libuuid ... Compiling & installing libuuid ... Checking xapian-core-scws ... no Installing xapian-core-scws (1.2.22) ... Extracting xapian-core-scws package ... Configuring xapian-core-scws ... Compiling & installing xapian-core-scws ... Checking libevent ... no Installing libevent (2.0.21-stable) ... Extracting libevent package ... Configuring libevent ... Compiling & installing libevent ... Extracting xunsearch package (1.4.10) ... Configuring xunsearch ... Compiling & installing xunsearch ... Cleaning ... done +=================================================+ | Installation completed successfully, Thanks you | | 安装成功,感谢选择和使用 xunsearch | +-------------------------------------------------+ | 说明和注意事项: | | 1. 开启/重新开启 xunsearch 服务程序,命令如下: | | /usr/local/xunsearch/bin/xs-ctl.sh restart | | 强烈建议将此命令写入服务器开机脚本中 | | | | 2. 所有的索引数据将被保存在下面这个目录中: | | /usr/local/xunsearch/data | | 如需要转移到其它目录,请使用软链接。 | | | | 3. 您现在就可以在我们提供的开发包(SDK)基础上 | | 开发您自己的搜索了。 | | 目前只支持 PHP 语言,参见下面文档: | | /usr/local/xunsearch/sdk/php/README | +=================================================+
注意: 如果是生产环境iptables可能需要配置得严格,本文仅为测试
Configurez iptables, ignorez cette opération
vi /etc/sysconfig/iptables 加入, 下面两行 -A INPUT -p tcp -m state --state NEW -m tcp --dport 8383 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 8384 -j ACCEPT 重启iptables service iptables restart
Démarrez le service
/usr/local/xunsearch/bin/xs-ctl.sh -b inet startContenu de sortie de démarrage :
INFO: starting server[xs-indexd] ... (BIND:8383) INFO: starting server[xs-searchd] ... (BIND:8384)Configuration du serveur WebInstaller le SDK PHP xunsearch
cd project/root/path composer require --prefer-dist hightman/xunsearchCréer un fichier de configuration de projet, un projet correspond à un fichier de configuration, nom du projet Vous ne pouvez pas répéter
cp app\vendor\hightman\xunsearch\app\demo.ini app\config\search-demo.inipour modifier le contenu du fichier que vous venez de créer, où les adresses IP de server.index et server.search sont les adresses IP du serveur sur lequel se trouve le service xunsearch installé
;搜索配置文件示例 project.name = demo project.default_charset = utf-8 server.index = 192.168.56.4:8383 server.search = 192.168.56.4:8384 [pid] type = id [subject] type = title [message] type = body [chrono] type = numericModifiez le fichier app /routes/web.php, écrivez du code de test de recherche client
###################### 测试模块 #################### /* * 全文搜索测试部分 */ Route::get('/search/{key}', function ($key){ $xs = new XS(config_path('search-demo.ini')); $search = $xs->search; // 获取 搜索对象 $query = $key; $search->setQuery($query) ->setSort('chrono', true) //按照chrono 正序排列 ->setLimit(20,0) // 设置搜索语句, 分页, 偏移量 ; $docs = $search->search(); // 执行搜索,将搜索结果文档保存在 $docs 数组中 $count = $search->count(); // 获取搜索结果的匹配总数估算值 foreach ($docs as $doc){ $subject = $search->highlight($doc->subject); // 高亮处理 subject 字段 $message = $search->highlight($doc->message); // 高亮处理 message 字段 echo $doc->rank() . '. ' . $subject . " [" . $doc->percent() . "%] - "; echo date("Y-m-d", $doc->chrono) . "<br>" . $message . "<br>"; echo '<br>========<br>'; } echo '总数:'. $count; }); Route::get('/makedoc/{title}/{message}', function ($title, $message){ $xs = new XS('demo'); $doc = new XSDocument; $doc->setFields([ 'pid' => 1, 'subject' => $title, 'message' => $message, 'chrono' => time(), ]); // 用数组进行批量赋值 $xs->index->add($doc); });Utilisez un navigateur pour accéder aux deux itinéraires ci-dessus pour tester la fonction Accès :
http://Votre nom de domaine/makedoc/titre/content teste l'index généré
Exemple de test :http://你的域名/makedoc/关于 xunsearch 的 DEMO 项目测试/项目测试是一个很有意思的行为! http://你的域名/makedoc/测试第二篇/这里是第二篇文章的内容 http://你的域名/makedoc/项目测试第三篇/俗话说,无三不成礼,所以就有了第三篇
注意: 索引不是即时生效的 延迟大概在10秒左右
http://Votre fonction de recherche de nom de domaine/recherche/test de mots clésPar exemple, recherchez des mots clés项目
1. 关于 xunsearch 的 DEMO 项目测试 [99%] - 2011-08-26 项目测试是一个很有意思的行为! ======== 2. 项目测试第三篇 [100%] - 2011-08-26 俗话说,无三不成礼,所以就有了第三篇 ======== 总数:2Par En suivant les étapes ci-dessus, nous avons effectué l'exemple de recherche en texte intégral le plus simple.
Si vous souhaitez en savoir plus, veuillez lire la documentation officielle de xunsearch.