Sphinx, релевантность в результатах поиска

richmantrade
Posts: 1034
Joined: Tue Dec 04, 2012 8:46 am

Sphinx, релевантность в результатах поиска

Post by richmantrade »

Причина создания топика: хочу добиться наиболее релевантных результатов поиска.
Известно, что при использовании SPH_MATCH_ANY сфинкс ищет по всем словам. И так же понятно, что совсем уж о "красивых" результатах в таком случае говорить не стоит, но добиться чего-то более менее вменяемого хочется.

Вопросов у меня будет много. Писать всё сразу не вижу смысла, ибо так мы запутаемся. Пойдём ка лучше по-порядку.

Итак, всем известно, что при поиске по всем словам, сфинкс всё равно более релевантные результаты выдаёт первыми. Т.е. если мы ищем "white car with big black tires" , то первым результатом никак не будет "tra-la-la car tr-la-la", если в базе есть результат "black car with little hood", т.к. второй результат хоть и не релевантен запросу, но совпадений в нём зримо больше.

На сайтах же я наблюдаю обратное. Здесь налицо сортировка результатов по CTR, а не в том порядке как сфинкс выдал айдишники.
Проверял так: брал кокретный запрос, искал в консоли:

Code: Select all

select * from my_index where match ('"white car with big black tires"/1')
и на сайте /search=white car with big black tires
- результат вообще разный.

Если же в консоли:

Code: Select all

select * from my_index where match ('"white car with big black tires"/1') order by total_ctr desc;
- тогда результат идентичен с тем что выводит на сайте.
admin
Site Admin
Posts: 37233
Joined: Wed Sep 10, 2008 11:43 am

Re: Sphinx, релевантность в результатах поиска

Post by admin »

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

если сделать
<thumb order=weight_ctr

тогда в запросе сфинкса будет

ORDER BY WEIGHT() DESC , total_ctr DESC

оно ?
Don't forget to run script update
richmantrade
Posts: 1034
Joined: Tue Dec 04, 2012 8:46 am

Re: Sphinx, релевантность в результатах поиска

Post by richmantrade »

Да, так отлично. Спасибо!

Теперь следующий вопрос.
Можно ли как-то в $_GET['search'] указывать более тонкие настройки поиска ?
Например поле для поиска, отрицания (!), MAYBE.

Я пробовал на сайте всякие варианты, типа:
/?search=white car with big black tires !hood
или
/?search=@description white car with big black tires
- реакций никаких. В первом случае есть результаты со словом hood , во втором случае - ищет везде, не только в @description.
В консоли же все эти варианты срабатывают.
admin
Site Admin
Posts: 37233
Joined: Wed Sep 10, 2008 11:43 am

Re: Sphinx, релевантность в результатах поиска

Post by admin »

Отрицание это -hood


@description white car with big black tires

как я понимаю это поиск только в деске несмотря на то что проиндексировано все?
такого нет, но можно дописать если есть необходимость
Don't forget to run script update
richmantrade
Posts: 1034
Joined: Tue Dec 04, 2012 8:46 am

Re: Sphinx, релевантность в результатах поиска

Post by richmantrade »

1. Про отрицание.
А с "!" никак нельзя ? Дело в том что у меня часто (на многих сайтах) линки на поиск построены как URLSAFE_ (т.е. слова через "тире"). Ну а потом, чтобы $_GET['search'] был красивый, в common.php идёт обратная замена: $_GET['search'] = str_replace('-', ' ', $_GET['search'])

2. Про поля.
Нет, пока такого не нужно. Это я к слову спросил, для общего понимания. Дело в том что я посредством поиска строю разные страницы (у каждого свои заморочки так сказать :lol: ). Теоретически может пригодиться, мало ли. Но пока не нужно.

А вот отрицания - да. Нужно. И с "восклицательным знаком" в $_GET['search'] оно не работает. В консоли работает.
admin
Site Admin
Posts: 37233
Joined: Wed Sep 10, 2008 11:43 am

Re: Sphinx, релевантность в результатах поиска

Post by admin »

Ок, добавил "!" в апдейте
проверим решает ли в целом это вопрос)
Don't forget to run script update
richmantrade
Posts: 1034
Joined: Tue Dec 04, 2012 8:46 am

Re: Sphinx, релевантность в результатах поиска

Post by richmantrade »

Что то не понял как пользоваться.
/?search=cute+teen+!asian
и
search=cute%20teen%20!asian
- выводит варианты с asian
admin
Site Admin
Posts: 37233
Joined: Wed Sep 10, 2008 11:43 am

Re: Sphinx, релевантность в результатах поиска

Post by admin »

хм.. запрос в сфинкс уходит правильный ..
скиньте плз урл где тестировать, может обрезает ! где-то в комон или что-то такое
Don't forget to run script update
richmantrade
Posts: 1034
Joined: Tue Dec 04, 2012 8:46 am

Re: Sphinx, релевантность в результатах поиска

Post by richmantrade »

Отправил в PM
admin
Site Admin
Posts: 37233
Joined: Wed Sep 10, 2008 11:43 am

Re: Sphinx, релевантность в результатах поиска

Post by admin »

все понял

в сетингах по дефолту Sphinx Search Mod пустой, это

SPH_MATCH_ANY

попробуйте плз

SPH_MATCH_ALL
или
SPH_MATCH_PHRASE

они более строгие
Don't forget to run script update
Post Reply