Здесь курят мануал.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 25 Май, 2012, 08:27:25

Страниц: [1]
Печать
Автор Тема: Поиск с учетом расстояния между словами запроса  (Прочитано 387 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Timur    ↓ 
12 Май, 2011, 01:46:19
НЕ ХУЕТА! ХУЕТА!

NullPointerException
Группа: в ухо

Карма: 56
Сообщений: 1009
Сила слова: 5.55

Есть индекс - слова и их частоты в документах. Чем выше частоты слов запроса, тем релевантнее найденный документ. Задача - при расчете релевантности учитывать то, как далеко друг от друга эти слова в тексте.
 
Пример.
Есть запрос из двух слов:
"a b"
 
Пусть найдены два совпадения:
1) "...a x y z b x y z a..." (3 совпадения)
2) "...x y z a b x y z..." (2 совпадения)
 
(x y z - некоторые другие слова)
 
Очевидно 2-ой результат больше подходит заданному запросу (хотя совпадений меньше, но зато искомые слова рядом).
Собственно вопрос - как это реализовать?
 
Есть идея - записывать в тот же индекс пары слов, как они идут в исходных текстах документов и назначать им больший "вес". Но это какой-то топорный и не расширяемый вариант (запрос же может быть длиннее двух слов).
Хранить позиции каждого слова? Накладно, да и запросы, наверное, получатся тяжелыми.
 
В общем поделитесь идеями. Ссылки на литературу приветствуются.
Записан
qpayct    ↓ 
11 Октябрь, 2011, 03:20:37 , спустя 152 дня 1 час 34 минуты 18 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 1
Сообщений: 57
Сила слова: 1.75

у меня в подписи почитай там строковые функции пхп ;)
Записан

Полезное:
PHP документация на русском
Приятное :
Загадка ЭйнштейнаInternet Explorer - это такая программа, с помощью которой можно скачать браузер
Ivan    ↓ 
11 Октябрь, 2011, 05:11:25 , спустя 1 час 50 минут 48 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 27
Сообщений: 1366
Сила слова: 1.98

Это называется релевантность
Спустя 1 минуту 30 секунд добавил
Ой, начал читать с конца)
Лучше не мучайся - все уже давно за тебя написано, используй готовые решения
Записан

Zdar    ↓ 
31 Октябрь, 2011, 08:05:13 , спустя 20 дней 2 часа 53 минуты 48 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: 0
Сообщений: 1
Сила слова: 0

Если просто слова - это одно, можно регэкспами все сделать, со словоформами сложнее, учитывая морфологию русского языка
Записан
master    ↓ 
31 Октябрь, 2011, 08:40:03 , спустя 34 минуты 50 секунд
НЕ ХУЕТА! ХУЕТА!

Квадратов сколько видишь ты?
Группа: Джедаи

Карма: 44
Сообщений: 2080
Сила слова: 2.12

в mysql есть fulltext search
а вообще sphinx вроде
Записан

Troy    ↓ 
31 Октябрь, 2011, 08:51:41 , спустя 11 минут 38 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 45
Сообщений: 2393
Сила слова: 1.88

sphinx однозначно, иначе начнешь думать о смазке, как один велосипедист из соседней темы)
Записан

adw0rd    ↓ 
01 Ноябрь, 2011, 08:18:55 , спустя 11 часов 27 минут 14 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17629
Сила слова: 1.67

юзай SphinxQL
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Frozzeg    ↓ 
01 Ноябрь, 2011, 11:46:09 , спустя 3 часа 27 минут 14 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Пятросянище

Карма: 92
Сообщений: 5499
Сила слова: 1.67

я думаю Timur за полгода определился уже )
Записан

Эксперт — это человек, который в узкой области допустил все возможные ошибки. © Нильс Бор.
Отложить на завтра — значит впасть в рекурсию. © Frozzeg
Страниц: [1]
Печать
 

Перейти в:  

Этот топик скрыли: NRG, adw0rd