Пытаюсь завести сфинкс на PHP 5.3.21, где API сфинкса уже впилено в сам PHP:
sphinx support enabled
Version 1.1.0
Конечно, стало ругаться на то, что классы уже определены. Закомментил следующую строку в
/classes/modules/sphinx/Sphinx.class.php:
require_once(Config::Get('path.root.engine').'/lib/external/Sphinx/sphinxapi.php');
Ошибки ушли, но поиск не дает результатов.
Самое странное, что подобной ситуации со встроенным в PHP сфинксапи вообще не гуглится.
Индексы создаются, но на сайте поиск выдает пустой результат. В какую сторону копать?
config.php поиска:
source site1
{
type = mysql
sql_host = localhost
sql_user = site1_user
sql_pass = 123123123
sql_db = site1
sql_port = 3306 # optional, default is 3306
sql_query_pre = SET CHARACTER_SET_RESULTS=cp1251
}
source elements: site1
{
sql_query_range = SELECT MIN(topic_id), MAX(topic_id) FROM phpbb_topics
sql_range_step = 1000
sql_query = SELECT \
topic_id, \
forum_id, \
topic_title, \
topic_poster, \
topic_replies, \
topic_views, \
topic_last_post_id \
FROM \
phpbb_topics \
WHERE topic_id >= $start AND topic_id <= $end
sql_attr_uint = topic_poster
sql_attr_uint = topic_replies
sql_attr_uint = topic_views
sql_attr_uint = forum_id
sql_attr_uint = topic_last_post_id
}
source posts: site1
{
sql_query_pre = SET CHARACTER_SET_RESULTS=cp1251
sql_query_pre = REPLACE INTO sph_counter SELECT 1, MAX(post_id) FROM phpbb_posts_text
sql_query_range = SELECT MIN(post_id), (select max_doc_id from sph_counter) FROM phpbb_posts_text
sql_range_step = 1000
sql_query = SELECT \
pt.post_id, \
p.poster_id, \
p.post_time, \
t.topic_id, \
t.forum_id, \
f.cat_id, \
p2.post_time as last_post_in_topic_time, \
pt.post_text as text, \
t.topic_title as title \
FROM \
phpbb_posts_text pt \
INNER JOIN \
phpbb_posts p on p.post_id = pt.post_id \
INNER JOIN \
phpbb_topics t on p.topic_id = t.topic_id \
INNER JOIN \
phpbb_posts p2 on t.topic_last_post_id = p2.post_id \
INNER JOIN \
phpbb_forums f on t.forum_id = f.forum_id \
WHERE pt.post_id >= $start AND pt.post_id <= $end
sql_attr_uint = last_post_in_topic_time
sql_attr_uint = poster_id
sql_attr_uint = topic_id
sql_attr_uint = forum_id
sql_attr_uint = cat_id
sql_attr_timestamp = post_time
}
source delta: posts
{
sql_query_pre = SET CHARACTER_SET_RESULTS=cp1251
sql_query_range = SELECT (select max_doc_id from sph_counter), MAX(post_id) FROM phpbb_posts_text
}
index topics
{
docinfo = extern
morphology = stem_enru
stopwords =
min_word_len = 1
charset_type = sbcs
charset_table = 0..9, A..Z->a..z, _, a..z, U+A8->U+E5, U+B8->U+E5, U+C0..U+DF->U+E0..U+FF, U+E0..U+FF
min_prefix_len = 0
min_infix_len = 0
path = /var/lib/sphinx/site1/topics
source = elements
html_strip = 1
}
index doubles: topics
{
source = elements
path = /var/lib/sphinx/site1/doubles
}
index posts: topics
{
path = /var/lib/sphinx/site1/posts
source = posts
}
index delta: posts
{
path = /var/lib/sphinx/site1/delta
source = delta
}
source site2
{
type = mysql
sql_host = localhost
sql_user = site2ls_user
sql_pass = 123123123
sql_db = site2ls
sql_port = 3306
# sql_sock = /var/run/mysqld/mysqld.sock
mysql_connect_flags = 32
sql_query_pre = SET NAMES utf8
sql_query_pre = SET SESSION query_cache_type=OFF
}
source topicsSource : site2
{
sql_query = \
SELECT t_fast.topic_id, t_fast.topic_title, UNIX_TIMESTAMP(t_fast.topic_date_add) as topic_date_add, \
tc.topic_text, t_fast.topic_publish \
FROM prefix_topic as t_fast, prefix_topic_content AS tc \
WHERE t_fast.topic_id=tc.topic_id AND t_fast.topic_id>=$start AND t_fast.topic_id<=$end
sql_query_range = SELECT MIN(topic_id),MAX(topic_id) FROM prefix_topic
sql_range_step = 1000
sql_attr_uint = topic_publish
sql_attr_timestamp = topic_date_add
sql_attr_multi = uint tag from query; SELECT topic_id, topic_tag_id FROM prefix_topic_tag
sql_ranged_throttle = 0
}
source commentsSource : site2
{
sql_query = \
SELECT comment_id, comment_text, UNIX_TIMESTAMP(comment_date) as comment_date, comment_delete \
FROM prefix_comment \
WHERE target_type='topic' AND comment_id>=$start AND comment_id<=$end AND comment_publish=1
sql_query_range = SELECT MIN(comment_id),MAX(comment_id) FROM prefix_comment
sql_range_step = 5000
sql_attr_uint = comment_delete
sql_attr_timestamp = comment_date
}
index topicsIndex
{
source = topicsSource
path = /var/lib/sphinx/site2/topicIndex
docinfo = extern
mlock = 0
morphology = stem_enru
charset_type = utf-8
html_strip = 1
html_remove_elements = style, script, code
}
index commentsIndex
{
source = commentsSource
path = /var/lib/sphinx/site2/commentsIndex
docinfo = extern
mlock = 0
morphology = stem_enru
charset_type = utf-8
html_strip = 1
html_remove_elements = style, script, code
}
indexer
{
mem_limit = 100M
}
searchd
{
listen = localhost:3312
log = /var/log/sphinx/searchd.log
query_log = /var/log/sphinx/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinx/searchd.pid
max_matches = 10000
seamless_rotate = 1
preopen_indexes = 0
unlink_old = 1
}