Dejurin
@Dejurin
Software engineer

Как сделать ролевантный контент с помощью Sphinx?

Есть таблица с постами title,content
Нужно выводить 5 ролевантных страниц, как реализовать с помощью php я понимаю, меня интересует индексация и правильное отображение.
Я так понимаю индексация происходит отдельных полей, а как искать ролевантную информацию исходя из всего текста title+content, когда я ищу

$query = SphinxQL::create($conn)->select('*')->from('site')->match(array('title','content'), $q);
$query = SphinxQL::create($conn)->select('*')->from('site')->match('title', $q)->match('content', $q);
//это не то что мне надо.


Конфиг
source site {
type = mysql
sql_host = localhost
sql_user = admin_site
sql_pass = ******
sql_db = admin_site_db
sql_port = 3306
sql_query_pre = SET NAMES utf8

sql_query = SELECT id,title,content,uri,ctime FROM search

sql_attr_bigint = id
sql_attr_timestamp = ctime
sql_attr_string = uri
sql_field_string = title
}

index site {
source = site
path = /home/admin/web/site.ru/sphinx_data/data
docinfo = extern
mlock = 0
morphology = stem_enru
min_word_len = 2
min_infix_len = 2
enable_star = 1
}

indexer {
mem_limit = 32M
}

searchd {
listen = 127.0.0.1:3307:mysql41
log = /home/admin/log/searchd.log
query_log = /home/admin/log/query.log
read_timeout = 5
max_children = 30
pid_file = /home/admin/log/searchd.pid
max_matches = 1000
compat_sphinxql_magics = 0
}
  • Вопрос задан
  • 399 просмотров
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Сформируйте из двух выборок - промежуточную таблицу результатов, где в одном поле будет и title и content и далее снова запрос по этой таблице.
Т.е. в 3 запроса.
Ответ написан
opium
@opium
Просто люблю качественно работать
сделайте индекс по обоим полям
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы