Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка по релевантности 
:(
    Опции темы
frenkys
  Дата 28.4.2010, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 18.6.2005

Репутация: нет
Всего: 1



Есть таблица Table с именами (поле name).

Vasya Pupkin
Andrey Olegovich
Oleg Sergeevich
Oleg Eugenevich

Делаю запрос:

Код

select * from Table where name LIKE '%Oleg%' order by name


получаю отсортированые по имени
Код


Andrey Olegovich
Oleg Eugenevich
Oleg Sergeevich


а как сделать чтоб они сортировались по релевантности? тоесть чтоб было:


Код

Oleg Eugenevich
Oleg Sergeevich
Andrey Olegovich




--------------------
 niva[frenky]
PM MAIL WWW   Вверх
Akina
Дата 28.4.2010, 07:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(frenkys @  28.4.2010,  01:41 Найти цитируемый пост)
как сделать чтоб они сортировались по релевантности?

Получить в запросе поле со значением релевантности и отсортировать по нему.
Применительно к MySQL читать справку по Match ... Against ...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
frenkys
Дата 28.4.2010, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 18.6.2005

Репутация: нет
Всего: 1



Дело в то что слишком мало текста для использования FULLTEXT INDEX
Код

mysql> SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('MySQL');
Empty set (0.00 sec)

Поиск по слову ``MySQL'' в предыдущем примере не приводит к каким-либо результатам,
 так как это слово присутствует более чем в половине строк. 
По существу, данное слово целесообразно трактовать как стоп-слово (т.е. слово с нулевой смысловой ценностью). 
Это наиболее приемлемое решение - запрос на естественном языке не должен возвращать каждую вторую строку из таблицы размером 1Гб.

Маловероятно, что слово, встречающееся в половине строк таблицы, определяет местонахождение релевантных документов.
 На самом деле, наиболее вероятно, что будет найдено много не относящихся к делу документов. 
Общеизвестно, что такое случается слишком часто при попытке найти что-либо в Интернет с помощью поисковых машин. 
Именно на этом основании подобным строкам должно быть назначено низкое смысловое значение в данном конкретном наборе данных. 


Это сообщение отредактировал(а) frenkys - 28.4.2010, 09:07
--------------------
 niva[frenky]
PM MAIL WWW   Вверх
Akina
Дата 28.4.2010, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(frenkys @  28.4.2010,  10:06 Найти цитируемый пост)
слишком мало текста для использования FULLTEXT INDEX

Значит, рожай свою пользовательскую фнукцию расчёта релевантности и используй её в запросе.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
frenkys
Дата 28.4.2010, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 18.6.2005

Репутация: нет
Всего: 1



Может есть где почитать что-то, что б не изобретать велосипед, вот в фейсбуке вконтакте работает так же
--------------------
 niva[frenky]
PM MAIL WWW   Вверх
Akina
Дата 28.4.2010, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Я не думаю, что есть что-то готовое - понятие релевантности всё-таки априори применяется к большим массивам текстовой информации.
У тебя же совершенно иной случай... погугли, пожалуй, по термину Shingle (шингл).


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0658 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.