私は約Sphinx
を混同しています。私は問題について言います。
私のシステム構成:なぜスフィンクサピは結果を返さないのですか?
Ubuntu 16.04 LTS
Apache 2.4.18
PHP 5.6.21
MariaDB 10.1.14
sphinx 2.2.10
私のデータベースはtest2
であり、それは2つのテーブル(文書やユーザー)と1が含まれていますビュー(検索)。
文書(表):
- ID
- 名
ユーザー(表):
- ID
fname
lname
- メール
検索(ビュー):
sphinxid
itemid
- データ
datatype
検索ビューのクエリがsphinxid
、 users
AS アルゴリズム= UNDEFINED DEFINER = root
localhost
@ SQLのセキュリティDEFINER VIEW search
AS SELECT UUID_SHORTを()CREATE
です。 itemid
AS id
、 CONCAT_WS(」」、 users
。fname
、 users
。lname
、 users
。email
)data
AS、 AS users
UNION SELECT UUID_SHORT()、 documents
FROM datatype
AS。 id
AS itemid
, documents
。私は、インデックスindexer --config /etc/sphinxsearch/sphinx.conf --all --rotate
を作るために、このコマンドを使用
source my_search
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass = myPass
sql_db = test2
sql_port = 3306 # optional, default is 3306
sql_query = \
SELECT sphinxid,itemid, data, datatype \
FROM test2.search;
sql_attr_uint = itemid
sql_attr_uint = data
}
index test1
{
source = my_search
path = /var/lib/sphinxsearch/data/test1
morphology = stem_en
min_word_len = 3
# min_prefix_len = 0
# enable_star = 0
}
searchd
{
listen = 9312
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
# max_matches = 1000
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
workers = threads # for RT to work
binlog_path = /var/lib/sphinxsearch
}
: documents
Sphinxの設定ファイルからdatatype
AS 2 、data
AS name
。そして、その結果は次のとおりです。
Sphinx 2.2.10-id64-release (2c212e0)
Copyright (c) 2001-2015, Andrew Aksyonoff
Copyright (c) 2008-2015, Sphinx Technologies Inc (http://sphinxsearch.com)
using config file '/etc/sphinxsearch/sphinx.conf'...
indexing index 'test1'...
collected 200 docs, 0.0 MB
total 200 docs, 200 bytes
total 0.007 sec, 28417 bytes/sec, 28417.16 docs/sec
total 2 reads, 0.000 sec, 1.5 kb/call avg, 0.0 msec/call avg
total 10 writes, 0.000 sec, 0.6 kb/call avg, 0.0 msec/call avg
rotating indices: successfully sent SIGHUP to searchd (pid=2287).
私はクライアントapi
としてsphinxapi.php
を使用して、私のphp
テストファイルがある:私はsearch view
を見て、私は1つのフィールド(Scarlett [email protected]
)を選択しますが、私はそれを検索するとき
<?php
include '../sphinxapi.php';
if(!empty($_GET['q'])){
var_dump($_GET['q']);
// Build search query
$cl = new SphinxClient();
$cl->SetServer("localhost", 9312);
$cl->SetMatchMode(SPH_MATCH_EXTENDED );
$cl->SetRankingMode (SPH_RANK_SPH04);
// Execute the query
$q = '"' . $cl->EscapeString($_GET['q']) . '"/1';
$searchresults = $cl->Query($q ,'test1');
var_dump($cl->GetLastError());
var_dump($cl->GetLastWarning());
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Sphinx test 1</title>
</head>
<body>
<form name="search" method="get" action="">
<input type="text" name="q" id="q" />
<input type="submit" value="GO" class="form-submit" />
</form>
<p>
<pre>
<?php
if(!empty($searchresults)){
print_r($searchresults);
}
?>
</pre>
</p>
</body>
</html>
(スカーレットのようなもの)、私は結果が得られません:
Array
(
[error] =>
[warning] =>
[status] => 0
[fields] => Array
(
[0] => datatype
)
[attrs] => Array
(
[itemid] => 1
[data] => 1
)
[total] => 0
[total_found] => 0
[time] => 0.000
[words] => Array
(
[scarlet] => Array
(
[docs] => 0
[hits] => 0
)
)
)
本当に私はなぜそれが後退するのかわかりません何もない?私はtutorial.youは私がどのようなデータを持っていない画像で見ることができスフィンクスによると、このコマンドmysql -h0 -P9306
を使用します(あなたがsphinx.conf
の私のクエリを見ることができる)と、それは20行を返します!(ユーザー表ました
私はこのチュートリアルIntegrating Sphinx Search into a PHP
Applicationを使用しますが、私のアプリケーションに結果が得られません! :(
私はデフォルトsphinx.conf
とそのテスト・データベースを使用する場合は、私のアプリケーションが私のsphinx.conf
が間違っていると思うworks.Iまたは多分それは私のビュー(検索)によって引き起こされる!