XunSearch的使用

一、項目的配置文件

1、要想使用xunsearch,首先需要進行配置文件的配置。

默認目錄在app下,如下面的結構,每一個搜索項目都需要有一個ini文件進行相應的配置。

?

舉例:

project.name = novel
project.default_charset = utf-8
server.index = 8383
server.search = 8384[novel_id]
type = id[title]
type = title[author_name][description]
type = body[last_time]
type = date

?

2、每個字段用一個區段配置來表示,中括號內的名字即為字段名。每個項目包含若干個字段,具體由項目搜索需求決定,并不需一味的與實際源數據庫 (如 MYSQL) 一致,而只需要設計搜索功能所涉及的字段即可。

?

3、這里為了安全起見,我同樣對查詢出的數據起了別名,進而一一對應xunsearch中ini文件定義的字段(第三部分可以看到)。

?

chm手冊下載地址:http://www.xunsearch.com/site/download/xs_php_manual.chm

建議如果初次使用xunsearch,則從手冊最開始跟著操作一遍。尤其是新手上路部分。

注:在線生成編輯配置文件ini?http://www.xunsearch.com/tools/iniconfig

?

二、生成骨架文件【建議最好執行這步,節省很多開發時間】

文檔地址:http://www.xunsearch.com/doc/php/guide/util.skel

?

三、從數據庫查詢出需要的數據,并且將數據添加到xunsearch索引數據庫

這里,我是在我外層定義了一個php文件來完成添加數據到XunSearch索引數據庫的操作,代碼如下

<?php
//require '/data/xun/lib/XS.php';
require './lib/XS.php';$XS = new XS('novel');// 建立 XS 對象,項目名稱為:novel
$index = $XS->index; // 獲取 索引對象//創建pdo對象,并從表中讀出需要的數據
$dsn = "mysql:dbname=test;host=127.0.0.1";
$pdo = new PDO($dsn,'root','123456');
$sql = "select comic_id as novel_id,name as title,pen_name as author_name,description,last_verify_time as last_time from front_comic";
$stmt = $pdo->query($sql);
$data = $stmt->fetchAll(2);//循環添加數據到XunSearch索引庫
foreach ($data as $v){// 創建文檔對象$doc = new XSDocument();$doc->setFields($v);// 添加到索引數據庫中$res = $index->add($doc);
}$res = $res ? 'success' : 'fail';
echo $res;

執行a.php文件,則從數據庫查詢出來的數據就添加到XunSearch索引數據庫中了。

?

四、演示效果

這里,訪問之前我們生成的對應的骨架文件就可以看到效果了。

到這里,基本的全文檢索就已經實現了。

總結:

1、XunSearch全文檢索的原理就是將mysql數據庫中的我們需要的數據查詢出來,并一一對應的添加到XunSearch的索引數據庫中,然后,用戶在前端查詢的時候,就直接查詢的是Xunsearch索引數據庫中的內容了。這樣,可以說速度就變得非常非常快了。

2、在項目中引入XunSearch或者sphinx等全文檢索工具,則會大大降低mysql的壓力,并且能夠更快速的檢索出用戶需要的數據,無疑體驗會更加好。

3、XunSearch索引數據庫的文件默認存儲在/usr/local/xunsearch/data/項目名 中,每一個項目有自己獨立的一個存儲庫,如下:

4、進入novel項目的存儲庫,我們可以看到三個文件,一個是存儲數據的,一個是存儲日志的,一個是存儲搜索記錄的

?

?

值得注意的是:在測試演示效果的時候,由于xunsearch數據庫并不是你這邊剛提交完,那邊數據就直接更新了,而是異步的(默認大概每兩個小時才更新一次),所以,為了更快速的看到效果,我們需要手動去刷新,如下:

util/Indexer.php --flush-log novel

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282204.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282204.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282204.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《VMware vSphere設計(原書第2版)》——1.1 什么是設計

本節書摘來自華章出版社《VMware vSphere設計&#xff08;原書第2版&#xff09;》一 書中的第1章&#xff0c;第1.1節&#xff0c;作者&#xff1a;[美] 福布斯格思里&#xff08;Forbes Guthrie&#xff09;斯科特羅威&#xff08;Scott Lowe&#xff09;肯德里克科爾曼&…

SqlKata - 方便好用的 Sql query builder

SqlKata查詢生成器是一個用C# 編寫的功能強大的Sql查詢生成器。它是安全的&#xff0c;與框架無關。靈感來源于可用的頂級查詢生成器&#xff0c;如Laravel Query Builder和 Knex&#xff1a;https://knexjs.org/。SqlKata有一個富有表現力的API。它遵循一個干凈的命名約定&…

編寫高質量代碼:改善Java的151個建議四(基本類型)21-30

該書籍PDF下載地址&#xff1a;http://download.csdn.net/download/muyeju/10001473 基本類型有8個&#xff1a;byte&#xff0c;short&#xff0c;int&#xff0c;char&#xff0c;long&#xff0c;double&#xff0c;float&#xff0c;boolean 21.用偶判斷&#xff0c;不用奇…

ABP vNext微服務架構詳細教程(補充篇)——單層模板(下)

業務代碼2聚合服務聚合服務層和基礎服務層相同的道理&#xff0c;在Demo.Core.Contracts增加Services文件夾&#xff0c;并添加Notifications子文件夾&#xff0c;在其中添加Dtos文件夾并添加兩個DTO與基礎服務對應&#xff1a;using Volo.Abp.Application.Dtos;namespace Demo…

PHP 電子商城基本數據表

1、品牌表 tp_brand CREATE TABLE tp_brand (id smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT 品牌表,name varchar(60) NOT NULL DEFAULT COMMENT 品牌名稱,logo varchar(80) NOT NULL DEFAULT COMMENT 品牌logo,desc text NOT NULL COMMENT 品牌描述,url varcha…

摘要,日志

1.hashlib 模塊: 由于數據的不安全性,為了保證用戶的信息絕對安全,所有所有人的賬號密碼不能以明文的形式存儲, 而是經過適當的處理以密文的形式存儲. hashlib對同一個字符串在不同的語言,不同的環境(操作系統,版本,時間)中加密得到的是同一個密文串,不同的字符串得到的密文是不…

《網站情感化設計與內容策略》一第1章 情感化設計1.1 革命:有失亦有得

本節書摘來自異步社區《網站情感化設計與內容策略》一書中的第1章&#xff0c;第1.1節&#xff0c;作者 【美】Aarron Walter , Erin Kissane&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看 第1章 情感化設計 網站情感化設計與內容策略 1.1 革命&#xff1…

php自動加載機制的實現

一、什么是自動加載 自動加載就是當我們在當前文件中實例化一個不存在的類時&#xff0c;調用自動加載機制引入相應的類文件。 注&#xff1a;自動加載有兩種方式&#xff08;都是php內置的&#xff09;&#xff0c;一種是通過__autoload(),另一種是通過spl_autoload_registe…

MySQL之 從復制延遲問題排查

一、從庫復制延遲問題 1、可能的原因如下&#xff08;1&#xff09;主從服務器處于不同的網絡之中&#xff0c;由于網絡延遲導致&#xff1b;&#xff08;2&#xff09;主從服務器的硬件配置不同&#xff0c;從服務器的硬件配置&#xff08;包括內存&#xff0c;CPU&#xff0c…

《樹莓派滲透測試實戰》——2.12 用例子總結以上步驟

本節書摘來異步社區《樹莓派滲透測試實戰》一書中的第2章&#xff0c;第2.12節&#xff0c;作者【美】Joseph Muniz&#xff08;約瑟夫 穆尼斯&#xff09; , Aamir Lakhani&#xff08;阿米爾 拉克哈尼&#xff09;&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號…

申請成為qq互聯個人開發者步驟(注意事項)2018

一、官方網址 官方地址&#xff1a;https://connect.qq.com/manage.html#/ 二、申請時注意事項&#xff1a; 1、申請時的名稱欄必須填寫身份證上的姓名&#xff0c;否則是不給通過的 2、上傳照片時&#xff0c;需要本人手持身份證&#xff0c;重點是照片中身份證上頭像的位置要…

《Swift開發實戰》——第1章,第1.4節啟動iOS 8模擬器

本節書摘來自異步社區《Swift開發實戰》一書中的第1章&#xff0c;第1.4節啟動iOS 8模擬器&#xff0c;作者 李寧&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看 1.4 啟動iOS 8模擬器Xcode是一款功能全面的應用程序&#xff0c;通過此工具可以輕松輸入、編譯…

基于.NetCore開發博客項目 StarBlog - (18) 實現本地Typora文章打包上傳

1前言九月太忙&#xff0c;只更新了三篇文章&#xff0c;本來這個功能是從九月初就開始做的&#xff0c;結果一直拖到現在國慶假期才有時間完善并且寫文章~之前我更新了幾篇關于 Python 的文章&#xff0c;有朋友留言問是不是不更新 .Net 了&#xff0c;那肯定不能啊&#xff0…

《算法導論》讀書筆記--第1、2章課后題 (轉)

第一章 轉自http://www.cnblogs.com/batteryhp/p/4654860.html 思考題 1-1&#xff08;運行時間的比較&#xff09;確定時間t內求解的問題的最大規模。 上面是網上提供的答案。 注意點&#xff1a; 1、最左邊一列的是關于n的增長情況描述&#xff0c;值得記住的是這些增長的排…

PHP開發自己的框架必備知識點

一、PHP常用的四種數據結構 簡介&#xff1a;spl是php的一個標準庫。 官方文檔&#xff1a;http://php.net/manual/zh/book.spl.php <?php//spl&#xff08;php標準庫&#xff09;數據結構/*** 棧&#xff08;先進后出&#xff09;*/ $stack new SplStack(); $stack-&g…

Linux 環境下 jdk1.8 maven3.2.3 Git2.8.0 安裝腳本

2019獨角獸企業重金招聘Python工程師標準>>> # Author: peizhouyu # Date: 2018-09-07 14:24:11 # Last Modified by: peizhouyu # Last Modified time: 2018-09-07 16:02:58#!/bin/bash SOFT_PATH/opt/softif [ ! -d $SOFT_PATH ];then mkdir $SOFT_PATH else …

《嵌入式設備驅動開發精解》——導讀

前言 嵌入式設備驅動開發精解本書的編寫主要是針對從事嵌入式軟件開發人員。本書的內容主要涵蓋ARM CPU以及各種常用外部設備驅動開發的方方面面&#xff0c;包括各種硬件接口、硬件接口協議說明以及各種外設的使用及調試方法&#xff0c;特別是對于開發調試過程中可能遇到的各…

C# WPF通過WindowChrome自定義窗體

概述在WPF界面開發中&#xff0c;系統默認的窗口比較丑&#xff0c;有時候想自定義窗體&#xff0c;比如微信的客戶端窗口這樣&#xff1a;使得左邊的一塊頂到最上端&#xff0c;如下圖所示&#xff1a;這時候我們可以 WindowStyle"None"&#xff0c;AllowsTranspare…

【轉載】遞推公式的特征方程及通項公式

先貼上鏈接&#xff1a;http://blog.csdn.net/happykocola/article/details/73933314 因為最近在復習初賽&#xff0c;然后碰到了這道題&#xff0c;并不會做&#xff0c;才發現有這么高明的方法... 已知遞推關系式&#xff1a; f(n)5f(n-1)-6f(n-2) (n>1) f(0)1 f(1)…

【leetcode】75. Sort Colors

題目如下&#xff1a; 解題思路&#xff1a;我的解題思路是遍歷數組&#xff0c;遇到0刪除該元素并插入到數組頭部&#xff0c;遇到1則不處理&#xff0c;遇到2刪除該元素并插入到數組尾部。 代碼如下&#xff1a; class Solution(object):def sortColors(self, nums):"&q…