Подсветка слов при поиске

L
На сайте с 22.11.2013
Offline
94
264

Привет

я использую на сайте поиск Sphinx. Раньше там была возможность в api сделать подсветку. щас я использую Sphinxql.

и как там сделать я не знаю

может кто знает как тогда реализовать ето на php?

я могу подсветить искомые слова только точное совпадение. а как мне выделить например

машина машины машинам?

Dreammaker
На сайте с 20.04.2006
Offline
552
#1

lutskboy, если я правильно понял, то http://sphinxsearch.com/docs/current.html#sphinxql-call-snippets

L
На сайте с 22.11.2013
Offline
94
#2

да. я тоже нашел ето. но оно работает в самом цикле


$results = $mysqli->query("SELECT *, WEIGHT() FROM my_index WHERE MATCH('месси|роналду|приедут') LIMIT 100 OPTION ranker=bm25");

while($row = $results->fetch_assoc()) {

$full_story = strip_tags($row['full_story']);
$res = $mysqli->query("CALL SNIPPETS('".$full_story."', 'my_index', 'месси|роналду|приедут',
'<strong>' AS before_match, '</strong>' AS after_match, 5 AS around, 200 AS limit)");
echo $res->fetch_assoc()['snippet']."\n";
}

а хотелось бы типа так


$results = $mysqli->query("SELECT *, WEIGHT(), SNIPPET(FETCH_FROM_SOURCE('title'), 'my_index', 'месси|роналду|приедут') AS title_snippet FROM my_index WHERE MATCH('месси|роналду|приедут') LIMIT 100 OPTION ranker=bm25");

но не работает

там есть еще sphinx_snippets. но не разобрался с ним

Dreammaker
На сайте с 20.04.2006
Offline
552
#3

lutskboy, http://sphinxsearch.com/forum/view.html?id=8563

вот тут ещё в 2011 году писалось, что есть возможность передать запросы call snippets пачкой, разделяя их запятой.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий