網(wǎng)上有很多關(guān)于pos機(jī)服務(wù)器配置,在Ubuntu安裝和配置Sphinx的知識(shí),也有很多人為大家解答關(guān)于pos機(jī)服務(wù)器配置的問題,今天pos機(jī)之家(www.tjfsxbj.com)為大家整理了關(guān)于這方面的知識(shí),讓我們一起來看下吧!
本文目錄一覽:
pos機(jī)服務(wù)器配置
Ubuntu系統(tǒng)默認(rèn)是配置有sphinx的,先檢查一下,別多此一舉。。。。。
在開始本指南之前,您需要:
一個(gè)Ubuntu 16.04服務(wù)器。sudo的一個(gè)非root用戶,您可以通過以下設(shè)置本教程 。安裝在服務(wù)器上,你可以通過下面的第2步設(shè)置在mysql 本教程 。第1步 - 安裝Sphinx
在Ubuntu上安裝Sphinx很容易,因?yàn)樗诒镜剀浖鎯?chǔ)庫(kù)中。 使用安裝它apt-get 。不行可以運(yùn)行apt-get update
sudo apt-get install sphinxsearch
現(xiàn)在您已經(jīng)在服務(wù)器上成功安裝了Sphinx。 在啟動(dòng)Sphinx守護(hù)進(jìn)程之前,讓我們進(jìn)行配置。
第2步 - 創(chuàng)建測(cè)試數(shù)據(jù)庫(kù)
接下來,我們將使用隨包提供的SQL文件中的示例數(shù)據(jù)設(shè)置數(shù)據(jù)庫(kù)。 這將允許我們測(cè)試Sphinx搜索以后工作。
讓我們將示例SQL文件導(dǎo)入數(shù)據(jù)庫(kù)。 首先,登錄到MySQL服務(wù)器shell。
mysql -u root -p
提示時(shí)輸入MySQL root用戶的密碼。 您提示將改變?yōu)閙ysql> 。
創(chuàng)建虛擬數(shù)據(jù)庫(kù)。 在這里,我們稱它為測(cè)試 ,但你可以將其命名為任何你想要的。
CREATE DATABASE test;
導(dǎo)入示例SQL文件。
SOURCE /etc/sphinxsearch/example.sql;
然后離開MySQL shell。
quit
現(xiàn)在你有一個(gè)數(shù)據(jù)庫(kù)填充樣本數(shù)據(jù)。 接下來,我們將定制Sphinx的配置。
第3步 - 配置Sphinx
Sphinx的配置應(yīng)該是在一個(gè)名為sphinx.conf中/etc/sphinxsearch 。 配置包括那些運(yùn)行必不可少的3個(gè)主要模塊: 索引 ,searchd的 ,和來源 。 我們將提供一個(gè)示例配置文件供您使用,并解釋每個(gè)部分,以便以后進(jìn)行自定義。
首先,創(chuàng)建sphinx.conf文件。
sudo nano /etc/sphinxsearch/sphinx.conf
這些指數(shù) ,searchd的 ,和源塊的描述如下。 然后,在這個(gè)步驟結(jié)束時(shí),對(duì)全部sphinx.conf被包括為你復(fù)制并粘貼到文件中。
源塊包含源代碼,用戶名和密碼到MySQL服務(wù)器的類型。 所述的第一列sql_query應(yīng)該是唯一的ID。 SQL查詢將在每個(gè)索引上運(yùn)行,并將數(shù)據(jù)轉(zhuǎn)儲(chǔ)到Sphinx索引文件。 下面是每個(gè)字段和源塊本身的描述。
type :數(shù)據(jù)源索引的類型。 在我們的例子,這是MySQL。 其他支持的類型包括pgsql,mssql,xmlpipe2,odbc等。sql_host :主機(jī)名MySQL的主機(jī)。 在我們的例子,這是localhost 。 這可以是域或IP地址。sql_user :用戶名MySQL的登錄。 在我們的例子,這是根源 。sql_pass :密碼為MySQL用戶。 在我們的示例中,這是根MySQL用戶的密碼。sql_db :存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫(kù)的名稱。 在我們的例子,這是考驗(yàn) 。sql_query :查詢從數(shù)據(jù)庫(kù)到索引那轉(zhuǎn)儲(chǔ)數(shù)據(jù)。這是源塊:
sphinx.conf的源代碼塊
source src1{ type = mysql #SQL settings (for ‘mysql’ and ‘pgsql’ types) sql_host = localhost sql_user = root sql_pass = password sql_db = test sql_port = 3306 # optional, default is 3306 sql_query = \\ SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \\ FROM documents sql_attr_uint = group_id sql_attr_timestamp = date_added}
索引組件包含源和存儲(chǔ)數(shù)據(jù)的路徑。
在
source :源塊的名稱。 在我們的例子,這是src1的 。path :路徑保存索引。sphinx.conf的索引塊
index test1{ source = src1 path = /var/lib/sphinxsearch/data/test1 docinfo = extern}
該searchd的組件包含端口和其他變量來運(yùn)行Sphinx守護(hù)進(jìn)程。
listen :這Sphinx守護(hù)進(jìn)程運(yùn)行的端口,后面的協(xié)議。 在我們的例子,這是9306:mysql41。 已知的協(xié)議是:Sphinx (SphinxAPI)和:mysql41(SphinxQL)query_log :路徑保存查詢?nèi)罩?。pid_file :到Sphinx守護(hù)進(jìn)程的PID文件的路徑。seamless_rotate :同時(shí)旋轉(zhuǎn)海量數(shù)據(jù)預(yù)緩存的指標(biāo),防止searchd的攤位。preopen_indexes :是否強(qiáng)行盤前在啟動(dòng)時(shí)的所有索引。unlink_old :是否刪除成功旋轉(zhuǎn)舊的索引拷貝。searchd塊的sphinx.conf
searchd{ listen = 9312:sphinx #SphinxAPI port listen = 9306:mysql41 #SphinxQL port log = /var/log/sphinxsearch/searchd.log query_log = /var/log/sphinxsearch/query.log read_timeout = 5 max_children = 30 pid_file = /var/run/sphinxsearch/searchd.pid seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 binlog_path = /var/lib/sphinxsearch/data}
復(fù)制和粘貼的完整配置如下。 你需要下面來改變它唯一的變量是sql_pass源塊,這是高亮顯示的變量。
完整的sphinx.conf文件
source src1{ type = mysql sql_host = localhost sql_user = root sql_pass = your_root_mysql_password sql_db = test sql_port = 3306 sql_query = \\ SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \\ FROM documents sql_attr_uint = group_id sql_attr_timestamp = date_added}index test1{ source = src1 path = /var/lib/sphinxsearch/data/test1 docinfo = extern}searchd{ listen = 9306:mysql41 log = /var/log/sphinxsearch/searchd.log query_log = /var/log/sphinxsearch/query.log read_timeout = 5 max_children = 30 pid_file = /var/run/sphinxsearch/searchd.pid seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 binlog_path = /var/lib/sphinxsearch/data}
探索更多的配置,你可以看看在/etc/sphinxsearch/sphinx.conf.sample文件,里面有所有的變量在更詳細(xì)的解釋。
第4步 - 管理索引
在這一步中,我們將數(shù)據(jù)添加到Sphinx索引,并確保利用指數(shù)保持最新cron 。
首先,使用我們之前創(chuàng)建的配置將數(shù)據(jù)添加到索引。
sudo indexer --all
你應(yīng)該得到類似下面的東西。
OutputSphinx 2.2.9-id64-release (rel22-r5006)Copyright (c) 2001-2015, Andrew AksyonoffCopyright (c) 2008-2015, Sphinx Technologies Inc (http://sphinxsearch.com)using config file \'/etc/sphinxsearch/sphinx.conf\'...indexing index \'test1\'...collected 4 docs, 0.0 MBsorted 0.0 Mhits, 100.0% donetotal 4 docs, 193 bytestotal 0.010 sec, 18552 bytes/sec, 384.50 docs/sectotal 4 reads, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avgtotal 12 writes, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg
在生產(chǎn)環(huán)境中,有必要保持索引為最新。 為了做到這一點(diǎn),讓我們創(chuàng)建一個(gè)cronjob。 首先,打開crontab。
crontab -e
可能會(huì)詢問您要使用哪個(gè)文本編輯器。 選擇你喜歡的; 在本教程中,我們使用nano 。
隨后的cronjob將每小時(shí)運(yùn)行一次,并使用我們之前創(chuàng)建的配置文件向索引添加新數(shù)據(jù)。 將其復(fù)制并粘貼到文件末尾,然后保存并關(guān)閉文件。
crontab
@hourly /usr/bin/indexer --rotate --config /etc/sphinxsearch/sphinx.conf --all
現(xiàn)在Sphinx已經(jīng)完全設(shè)置和配置,我們可以啟動(dòng)服務(wù)并嘗試。
第5步 - 啟動(dòng)Sphinx
默認(rèn)情況下,Sphinx守護(hù)程序關(guān)閉。 首先,我們將改變這一行啟用START=no到START=yes中/etc/default/sphinxsearch 。
sudo sed -i \'s/START=no/START=yes/g\' /etc/default/sphinxsearch
然后,使用systemctl重啟Sphinx守護(hù)進(jìn)程。
sudo systemctl restart sphinxsearch.service
要檢查Sphinx守護(hù)程序是否正確運(yùn)行,請(qǐng)運(yùn)行。
sudo systemctl status sphinxsearch.service
你應(yīng)該得到類似下面的東西。
Output● sphinxsearch.service - LSB: Fast standalone full-text SQL search engine Loaded: loaded (/etc/init.d/sphinxsearch; bad; vendor preset: enabled) Active: active (running) since Tue 2016-07-26 01:50:00 EDT; 15s ago . . .
這也將確保Sphinx守護(hù)程序即使在服務(wù)器重新啟動(dòng)時(shí)也啟動(dòng)。
第6步 - 測(cè)試
現(xiàn)在,一切都設(shè)置好了,讓我們測(cè)試搜索功能。 使用MySQL接口連接到SphinxQL(在端口9306上)。 您提示將改變?yōu)閙ysql> 。
mysql -h0 -P9306
讓我們搜索一個(gè)句子。
SELECT * FROM test1 WHERE MATCH(\'test document\'); SHOW META;
你應(yīng)該得到類似下面的東西。
Output+------+----------+------------+| id | group_id | date_added |+------+----------+------------+| 1 | 1 | 1465979047 || 2 | 1 | 1465979047 |+------+----------+------------+2 rows in set (0.00 sec)+---------------+----------+| Variable_name | Value |+---------------+----------+| total | 2 || total_found | 2 || time | 0.000 || keyword[0] | test || docs[0] | 3 || hits[0] | 5 || keyword[1] | document || docs[1] | 2 || hits[1] | 2 |+---------------+----------+9 rows in set (0.00 sec)
在上述結(jié)果可以看出,Sphinx發(fā)現(xiàn)從我們的2場(chǎng)比賽test1索引我們的測(cè)試句子。 該SHOW META;命令顯示以及在句子中每個(gè)關(guān)鍵字的點(diǎn)擊。
讓我們搜索一些關(guān)鍵字。
CALL KEYWORDS (\'test one three\', \'test1\', 1);
你應(yīng)該得到類似下面的東西。
Output+------+-----------+------------+------+------+| qpos | tokenized | normalized | docs | hits |+------+-----------+------------+------+------+| 1 | test | test | 3 | 5 || 2 | one | one | 1 | 2 || 3 | three | three | 0 | 0 |+------+-----------+------------+------+------+3 rows in set (0.00 sec)
在結(jié)果上面可以看到,在test1的指數(shù),Sphinx發(fā)現(xiàn):
5個(gè)匹配在3個(gè)文檔中的關(guān)鍵字\'test\'2在1個(gè)文檔中匹配關(guān)鍵字“1”0匹配0個(gè)文檔中的關(guān)鍵字\'three\'現(xiàn)在你可以離開MySQL shell了。
quit
結(jié)論
在本教程中,我們向您展示了如何安裝Sphinx,并使用SphinxQL和MySQL進(jìn)行簡(jiǎn)單搜索。
您還可以找到官方對(duì)于PHP,Perl,Python和Ruby和Java本地SphinxAPI實(shí)現(xiàn) 。 如果你正在使用的NodeJS,你也可以使用該SphinxAPI包 。
通過使用Sphinx,您可以輕松地添加自定義搜索到您的網(wǎng)站。 有關(guān)使用Sphinx的更多信息,請(qǐng)?jiān)L問該項(xiàng)目的網(wǎng)站 。
以上就是關(guān)于pos機(jī)服務(wù)器配置,在Ubuntu安裝和配置Sphinx的知識(shí),后面我們會(huì)繼續(xù)為大家整理關(guān)于pos機(jī)服務(wù)器配置的知識(shí),希望能夠幫助到大家!
