Я смущен насчет Sphinx
. Я говорю о проблеме.
конфигурации Моя система:Почему Sphinxapi не возвращает результат?
Ubuntu 16.04 LTS
Apache 2.4.18
PHP 5.6.21
MariaDB 10.1.14
sphinx 2.2.10
Моя база данных test2
и содержит 2 таблицы (документы и пользователей) и 1 просмотр (поиск).
документы (таблица):
- идентификатор
- имя
пользователей (таблица):
- ID
fname
lname
- электронной
поиск (просмотр):
sphinxid
itemid
- данные
datatype
вид Поисковый запрос
CREATE АЛГОРИТМ = Неопределенные DEFINER = root
@localhost
SQL DEFINER БЕЗОПАСНОСТИ VIEW search
AS ВЫБРАТЬ UUID_SHORT() AS sphinxid
, users
. id
А.С. itemid
, CONCAT_WS (»», users
. fname
, users
. lname
, users
. email
) А.С. data
, 1 КАК datatype
ОТ users
UNION SELECT, UUID_SHORT (AS) sphinxid
, documents
. id
AS itemid
, documents
.name
AS data
, 2 AS datatype
ОТ documents
файла конфигурации Sphinx:
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
}
Я использовал эту команду, чтобы сделать индекс indexer --config /etc/sphinxsearch/sphinx.conf --all --rotate
. И результат:
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).
Я использовал sphinxapi.php
как клиент api
и мой php
тестовый файл:
<?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>
Я смотрю на search view
и я выбираю одно поле (Scarlett [email protected]
), но когда я искать его (что-то вроде «Scarlet»), я не получаю никакого результата:
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
)
)
)
Действительно, я не знаю, почему это Ретур ns ничего?
Я использую эту команду mysql -h0 -P9306
согласно сфинкса tutorial.you можно увидеть на картинке, что у меня нет каких-либо данных (вы можете увидеть мой запрос в sphinx.conf
) и возвращает 20 строк! (Таблица пользователей имеет 100 строк и документов имеют 90 строк).
Я использую этот учебник Integrating Sphinx Search into a PHP
Application, но я не могу получить результат в моем приложении! :(
Когда я использую по умолчанию sphinx.conf
и его тестовую базу данных, мое приложение works.I думаю, мой sphinx.conf
неправильно или, возможно, это вызвано мой взгляд (поиск)!