Heim >Backend-Entwicklung >PHP-Tutorial >Laravel xunsearch Volltextsuche
Bevor Sie beginnen, wird dringend empfohlen, die offizielle Dokumentation von xunsearch zu lesen
Xunsearch ist eine leistungsstarke Volltextsuchlösung mit vollem Funktionsumfang .
Xunsearch wurde entwickelt, um allgemeinen Entwicklern dabei zu helfen, schnell und einfach ihre eigenen Volltextsuchmaschinen für vorhandene umfangreiche Daten zu erstellen.
Klicken Sie hier für Details
代号 | 功能 | IP | 系统 |
---|---|---|---|
服务器A | 提供web服务 | 192.168.56.2 | centos7 |
服务器B | 提供 xunsearch 后端服务 | 192.168.56.3 | centos7 |
PHP-Version 7.0.13 hat keinen Cache installiert.
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
Stellen Sie eine Verbindung zu Server B her und führen Sie den folgenden Befehl aus, um xunsearch zu installieren Installationspaket
wget http://www.php.cn/ tar -xjf xunsearch-full-latest.tar.bz2
Um das Installationsskript auszuführen, folgen Sie den Anweisungen und geben Sie hauptsächlich das Installationsverzeichnis des xunsearch-Softwarepakets ein. Es wird dringend empfohlen, ein separates Verzeichnis einzuplanen, anstatt es mit anderen Softwareverzeichnissen zu vermischen .
cd xunsearch-full-1.4.10/ sh setup.sh
Dann wird die interaktive Installationsoberfläche angezeigt, um die Installation im Standardpfad durchzuführen.
Trinken Sie dann eine Tasse Kaffee und warten Sie eine Weile .
+==========================================+ | 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可能需要配置得严格,本文仅为测试
Konfigurieren Sie iptables, ignorieren Sie diesen Vorgang
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
Starten Sie den Dienst
/usr/local/xunsearch/bin/xs-ctl.sh -b inet start
Inhalt der Startausgabe:
INFO: starting server[xs-indexd] ... (BIND:8383) INFO: starting server[xs-searchd] ... (BIND:8384)
Xunsearch PHP SDK installieren
cd project/root/path composer require --prefer-dist hightman/xunsearch
Erstellen Sie eine Projektkonfigurationsdatei, ein Projekt entspricht einem Konfigurationsdatei, Projektname Sie können
cp app\vendor\hightman\xunsearch\app\demo.ini app\config\search-demo.ini
nicht wiederholen, um den Inhalt der gerade erstellten Datei zu ändern, wobei die IP-Adressen von server.index und server.search die IP-Adressen des Servers sind, auf dem sich der xunsearch-Dienst befindet installiert
;搜索配置文件示例 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 = numeric
Ändern Sie die App-Datei /routes/web.php und schreiben Sie einen Client-Suchtestcode
###################### 测试模块 #################### /* * 全文搜索测试部分 */ 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); });
Verwenden Sie einen Browser, um auf die beiden oben genannten Routen zuzugreifen und die Funktion zu testen
Zugriff: http: //Ihr Domainname/Makedoc/Titel/Inhaltstest generierter Index
Testbeispiel:
http://你的域名/makedoc/关于 xunsearch 的 DEMO 项目测试/项目测试是一个很有意思的行为! http://你的域名/makedoc/测试第二篇/这里是第二篇文章的内容 http://你的域名/makedoc/项目测试第三篇/俗话说,无三不成礼,所以就有了第三篇
注意: 索引不是即时生效的 延迟大概在10秒左右
Zugriff über: http://Ihr Domainname/Suche/Keyword-Testsuchfunktion
Zum Beispiel nach Schlüsselwörtern suchen项目
1. 关于 xunsearch 的 DEMO 项目测试 [99%] - 2011-08-26 项目测试是一个很有意思的行为! ======== 2. 项目测试第三篇 [100%] - 2011-08-26 俗话说,无三不成礼,所以就有了第三篇 ======== 总数:2
Durch Mit den obigen Schritten haben wir das einfachste Beispiel für eine Volltextsuche abgeschlossen.
Wenn Sie weitere Details erfahren möchten, lesen Sie bitte die offizielle Dokumentation von xunsearch.
offizielle Dokumentation von xunsearch
Bevor Sie beginnen, wird dringend empfohlen, die offizielle Dokumentation von xunsearch zu durchsuchen
Xunsearch ist eine leistungsstarke Volltextsuchlösung mit vollem Funktionsumfang.
Xunsearch wurde entwickelt, um allgemeinen Entwicklern dabei zu helfen, schnell und einfach ihre eigenen Volltextsuchmaschinen für vorhandene umfangreiche Daten zu erstellen.
Klicken Sie hier für Details
代号 | 功能 | IP | 系统 |
---|---|---|---|
服务器A | 提供web服务 | 192.168.56.2 | centos7 |
服务器B | 提供 xunsearch 后端服务 | 192.168.56.3 | centos7 |
PHP-Version 7.0.13 hat keinen Cache installiert. Es wird empfohlen, einen Cache in der Produktionsumgebung zu installieren B und führen Sie die folgenden Anweisungen aus, um xunsearch zu installieren, zu entpacken und das Paket zu installieren.
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
Führen Sie das Installationsskript aus und befolgen Sie die Anweisungen. Geben Sie dabei hauptsächlich das Installationsverzeichnis des xunsearch-Softwarepakets ein. Es wird dringend empfohlen, a zu planen separates Verzeichnis, anstatt es mit anderen Softwareverzeichnissen zu vermischen.
wget http://www.php.cn/ tar -xjf xunsearch-full-latest.tar.bz2
Dann wird die interaktive Installationsoberfläche angezeigt, um die Installation im Standardpfad durchzuführen.
Trinken Sie dann eine Tasse Kaffee und warten Sie eine Weile .cd xunsearch-full-1.4.10/ sh setup.sh
+==========================================+ | 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 | +=================================================+
Konfigurieren Sie iptables, ignorieren Sie diesen Vorgang注意: 如果是生产环境iptables可能需要配置得严格,本文仅为测试
Starten Sie den Dienst
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
Inhalt der Startausgabe:
/usr/local/xunsearch/bin/xs-ctl.sh -b inet start
Webserverkonfiguration
INFO: starting server[xs-indexd] ... (BIND:8383) INFO: starting server[xs-searchd] ... (BIND:8384)Xunsearch PHP SDK installieren
Erstellen Sie eine Projektkonfigurationsdatei, ein Projekt entspricht einem Konfigurationsdatei, Projektname Sie können
cd project/root/path composer require --prefer-dist hightman/xunsearch
nicht wiederholen, um den Inhalt der gerade erstellten Datei zu ändern, wobei die IP-Adressen von server.index und server.search die IP-Adressen des Servers sind, auf dem sich der xunsearch-Dienst befindet installiert
cp app\vendor\hightman\xunsearch\app\demo.ini app\config\search-demo.ini
Ändern Sie die App-Datei /routes/web.php und schreiben Sie einen Client-Suchtestcode
;搜索配置文件示例 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 = numeric
Verwenden Sie einen Browser, um auf die beiden oben genannten Routen zuzugreifen und die Funktion zu testen
###################### 测试模块 #################### /* * 全文搜索测试部分 */ 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); });Zugriff:
http: //
Ihr Domainname/Makedoc/Titel/Inhaltstest generierter Indexhttp://你的域名/makedoc/关于 xunsearch 的 DEMO 项目测试/项目测试是一个很有意思的行为! http://你的域名/makedoc/测试第二篇/这里是第二篇文章的内容 http://你的域名/makedoc/项目测试第三篇/俗话说,无三不成礼,所以就有了第三篇
Zugriff über: 注意: 索引不是即时生效的 延迟大概在10秒左右
http://
Zum Beispiel nach Schlüsselwörtern suchen项目
Durch Mit den obigen Schritten haben wir das einfachste Beispiel für die Volltextsuche abgeschlossen.
1. 关于 xunsearch 的 DEMO 项目测试 [99%] - 2011-08-26 项目测试是一个很有意思的行为! ======== 2. 项目测试第三篇 [100%] - 2011-08-26 俗话说,无三不成礼,所以就有了第三篇 ======== 总数:2
Weitere Artikel zum Thema Laravel xunsearch-Volltextsuche Bitte achten Sie auf die chinesische PHP-Website!