Топ поиска mysql должен быть первым - PullRequest
0 голосов
/ 28 июля 2010

в матче - против получаю правильные результаты, проблем нет, но мне нужна комбинация результатов.

Как и для "компьютерной графики", я получаю результаты для "+ computer + graphics" как результаты только для "компьютера" и результаты "компьютерной графики" и "graphics" и т. Д.

Здесь я хочу сначала получить результаты "компьютерной графики", а затем результаты поиска по другому слову. Как я могу привести их в первую очередь. Помогите мне кто-нибудь, пожалуйста

Ответы [ 4 ]

1 голос
/ 28 июля 2010

вы должны упорядочить по релевантности: найдите тот же запрос, который вы используете в WHERE, вызов - RELEVANCE, а затем упорядочите по этому полю.

ВЫБРАТЬ МАТЧА ('...') ПРОТИВ ('...') как релевантность ИЗ таблицы ГДЕ МАТЧА ('...') ПРОТИВ ('...' IN БУЛЕВЫЙ РЕЖИМ) ЗАКАЗАТЬ ПО Релевантности DESC

1 голос
/ 28 июля 2010

Предполагается, что мы говорим о полнотекстовом индексе:

... ORDER BY MATCH('computer graphics') AGAINST (some,columns) DESC;
1 голос
/ 28 июля 2010

Это не может быть сделано в полнотекстовом поиске MySQL без небольшого скачка по кругу.

В основном вам нужно запустить поиск дважды, чтобы получить желаемые результаты.Во-первых, запустите логический полнотекстовый поиск , используя двойные кавычки, чтобы заключить точную искомую фразу.Двойные кавычки в логическом режиме будут возвращать только точные совпадения .Как только вы получите эти результаты, ваш обычный поиск на естественном языке .Это обычный поиск на естественном языке, который доставляет вам проблемы с частичными совпадениями.Вам нужно будет вручную объединить два результата поиска.

Хотя полный текст MySQL подходит для простых поисковых запросов, он не является отличным поисковым решением.Рассмотрим что-нибудь с большей силой, например Sphinx , Solr / Lucene , или даже что-то вроде ElasticSearch .

0 голосов
/ 29 июля 2010

Записи в таблице

что такое компьютер?что такое графика на компьютере?что такое компьютерная графика?что такое графика?

QUERY: выберите *, MATCH (поле1, поле2) ПРОТИВ ("+ computer + graphics" В БУЛЕВОМ РЕЖИМЕ) как результат таблицы $, где MATCH (поле1, поле2) ПРОТИВ ("+ компьютер+ graphics "В БУЛЕВОМ РЕЖИМЕ) ЗАКАЗАТЬ ПО РЕЗУЛЬТАТАМ ASC

ЭТО ВОЗВРАЩАЕТ точные результаты, некоторые из которых находятся посередине, а другие - первые.что такое графика на компьютере?что такое компьютер?что такое графика?

как это можно исправить ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...