pos機服務器配置,在Ubuntu安裝和配置Sphinx

 新聞資訊  |   2023-04-23 12:14  |  投稿人:pos機之家

網上有很多關于pos機服務器配置,在Ubuntu安裝和配置Sphinx的知識,也有很多人為大家解答關于pos機服務器配置的問題,今天pos機之家(www.tonybus.com)為大家整理了關于這方面的知識,讓我們一起來看下吧!

本文目錄一覽:

1、pos機服務器配置

pos機服務器配置

Ubuntu系統默認是配置有sphinx的,先檢查一下,別多此一舉。。。。。

在開始本指南之前,您需要:

一個Ubuntu 16.04服務器。sudo的一個非root用戶,您可以通過以下設置本教程 。安裝在服務器上,你可以通過下面的第2步設置在mysql 本教程 。

第1步 - 安裝Sphinx

在Ubuntu上安裝Sphinx很容易,因為它在本地軟件包存儲庫中。 使用安裝它apt-get 。不行可以運行apt-get update

sudo apt-get install sphinxsearch

現在您已經在服務器上成功安裝了Sphinx。 在啟動Sphinx守護進程之前,讓我們進行配置。

第2步 - 創建測試數據庫

接下來,我們將使用隨包提供的SQL文件中的示例數據設置數據庫。 這將允許我們測試Sphinx搜索以后工作。

讓我們將示例SQL文件導入數據庫。 首先,登錄到MySQL服務器shell。

mysql -u root -p

提示時輸入MySQL root用戶的密碼。 您提示將改變為mysql> 。

創建虛擬數據庫。 在這里,我們稱它為測試 ,但你可以將其命名為任何你想要的。

CREATE DATABASE test;

導入示例SQL文件。

SOURCE /etc/sphinxsearch/example.sql;

然后離開MySQL shell。

quit

現在你有一個數據庫填充樣本數據。 接下來,我們將定制Sphinx的配置。

第3步 - 配置Sphinx

Sphinx的配置應該是在一個名為sphinx.conf中/etc/sphinxsearch 。 配置包括那些運行必不可少的3個主要模塊: 索引 ,searchd的 ,和來源 。 我們將提供一個示例配置文件供您使用,并解釋每個部分,以便以后進行自定義。

首先,創建sphinx.conf文件。

sudo nano /etc/sphinxsearch/sphinx.conf

這些指數 ,searchd的 ,和塊的描述如下。 然后,在這個步驟結束時,對全部sphinx.conf被包括為你復制并粘貼到文件中。

塊包含源代碼,用戶名和密碼到MySQL服務器的類型。 所述的第一列sql_query應該是唯一的ID。 SQL查詢將在每個索引上運行,并將數據轉儲到Sphinx索引文件。 下面是每個字段和源塊本身的描述。

type :數據源索引的類型。 在我們的例子,這是MySQL。 其他支持的類型包括pgsql,mssql,xmlpipe2,odbc等。sql_host :主機名MySQL的主機。 在我們的例子,這是localhost 。 這可以是域或IP地址。sql_user :用戶名MySQL的登錄。 在我們的例子,這是根源 。sql_pass :密碼為MySQL用戶。 在我們的示例中,這是根MySQL用戶的密碼。sql_db :存儲數據的數據庫的名稱。 在我們的例子,這是考驗 。sql_query :查詢從數據庫到索引那轉儲數據。

這是源塊:

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}

索引組件包含源和存儲數據的路徑。

source :源塊的名稱。 在我們的例子,這是src1的 。path :路徑保存索引。

sphinx.conf的索引塊

index test1{ source = src1 path = /var/lib/sphinxsearch/data/test1 docinfo = extern}

searchd的組件包含端口和其他變量來運行Sphinx守護進程。

listen :這Sphinx守護進程運行的端口,后面的協議。 在我們的例子,這是9306:mysql41。 已知的協議是:Sphinx (SphinxAPI)和:mysql41(SphinxQL)query_log :路徑保存查詢日志。pid_file :到Sphinx守護進程的PID文件的路徑。seamless_rotate :同時旋轉海量數據預緩存的指標,防止searchd的攤位。preopen_indexes :是否強行盤前在啟動時的所有索引。unlink_old :是否刪除成功旋轉舊的索引拷貝。

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}

復制和粘貼的完整配置如下。 你需要下面來改變它唯一的變量是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文件,里面有所有的變量在更詳細的解釋。

第4步 - 管理索引

在這一步中,我們將數據添加到Sphinx索引,并確保利用指數保持最新cron 。

首先,使用我們之前創建的配置將數據添加到索引。

sudo indexer --all

你應該得到類似下面的東西。

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

在生產環境中,有必要保持索引為最新。 為了做到這一點,讓我們創建一個cronjob。 首先,打開crontab。

crontab -e

可能會詢問您要使用哪個文本編輯器。 選擇你喜歡的; 在本教程中,我們使用nano 。

隨后的cronjob將每小時運行一次,并使用我們之前創建的配置文件向索引添加新數據。 將其復制并粘貼到文件末尾,然后保存并關閉文件。

crontab

@hourly /usr/bin/indexer --rotate --config /etc/sphinxsearch/sphinx.conf --all

現在Sphinx已經完全設置和配置,我們可以啟動服務并嘗試。

第5步 - 啟動Sphinx

默認情況下,Sphinx守護程序關閉。 首先,我們將改變這一行啟用START=no到START=yes中/etc/default/sphinxsearch 。

sudo sed -i \'s/START=no/START=yes/g\' /etc/default/sphinxsearch

然后,使用systemctl重啟Sphinx守護進程。

sudo systemctl restart sphinxsearch.service

要檢查Sphinx守護程序是否正確運行,請運行。

sudo systemctl status sphinxsearch.service

你應該得到類似下面的東西。

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守護程序即使在服務器重新啟動時也啟動。

第6步 - 測試

現在,一切都設置好了,讓我們測試搜索功能。 使用MySQL接口連接到SphinxQL(在端口9306上)。 您提示將改變為mysql> 。

mysql -h0 -P9306

讓我們搜索一個句子。

SELECT * FROM test1 WHERE MATCH(\'test document\'); SHOW META;

你應該得到類似下面的東西。

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)

在上述結果可以看出,Sphinx發現從我們的2場比賽test1索引我們的測試句子。 該SHOW META;命令顯示以及在句子中每個關鍵字的點擊。

讓我們搜索一些關鍵字。

CALL KEYWORDS (\'test one three\', \'test1\', 1);

你應該得到類似下面的東西。

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)

在結果上面可以看到,在test1的指數,Sphinx發現:

5個匹配在3個文檔中的關鍵字\'test\'2在1個文檔中匹配關鍵字“1”0匹配0個文檔中的關鍵字\'three\'

現在你可以離開MySQL shell了。

quit

結論

在本教程中,我們向您展示了如何安裝Sphinx,并使用SphinxQL和MySQL進行簡單搜索。

您還可以找到官方對于PHP,Perl,Python和Ruby和Java本地SphinxAPI實現 。 如果你正在使用的NodeJS,你也可以使用該SphinxAPI包 。

通過使用Sphinx,您可以輕松地添加自定義搜索到您的網站。 有關使用Sphinx的更多信息,請訪問該項目的網站 。

以上就是關于pos機服務器配置,在Ubuntu安裝和配置Sphinx的知識,后面我們會繼續為大家整理關于pos機服務器配置的知識,希望能夠幫助到大家!

轉發請帶上網址:http://www.tonybus.com/news/27665.html

你可能會喜歡:

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 babsan@163.com 舉報,一經查實,本站將立刻刪除。