лучший способ поиска в базе данных по ключевым словам пользователя? - PullRequest
2 голосов
/ 22 июня 2010

Я хочу создать поисковик по продукту.

Я думал об использовании google-site-search, но это действительно поиск по индексу Google вашего сайта. Я не хочу искать это. Я хочу найти определенную таблицу (все поля, даже те, которые пользователь никогда не видит) в моей базе данных по заданным ключевым словам.

Но я хочу, чтобы этот поиск был максимально надежным, мне было интересно, есть ли что-то, что я мог бы использовать? если нет, то какой лучший способ сделать это сам?

Ответы [ 5 ]

6 голосов
/ 22 июня 2010

Вы можете попробовать использовать Sphinx full-text search для MySQL.

Вот также учебник от IBM, использующего PHP.

2 голосов
/ 22 июня 2010

Сначала я сосредоточусь на полнотекстовом поиске MySQL. Взгляните на эти ссылки:

Вот фрагмент первой ссылки:

Полнотекстовый поиск выполняется с использованием MATCH () ... ПРОТИВ синтаксиса. MATCH () принимает список через запятую, который имена столбцов для поиска . ПРОТИВ принимает строку для поиска, и необязательный модификатор, который указывает, какой тип поиска выполнять . Строка поиска должна быть буквальная строка, а не переменная или имя столбца Есть три типа полнотекстовый поиск:

1 голос
/ 22 июня 2010

Одной вещью, которую вы также можете захотеть изучить (если не собираетесь использовать сфинкса), является определение ваших ключевых слов . Это немного упростит сопоставление ключевых слов (так как использование слов 'cheese' и 'cheesy' в конечном итоге приведет к созданию одного и того же слова), что сделает соответствие ключевых слов более гибким.

1 голос
/ 22 июня 2010

ВЫБОР * ИЗ таблицы ГДЕ значение REGEXP 'searchterm'

Позволяет использовать многие знакомые приемы поиска, такие как +, "" и т. Д.

Это встроенная функция MySQL. Нет необходимости использовать перейти на новый язык или плагин, который может быть быстрее, но также дополнительное время для обслуживания, устранения неполадок и т. Д.

Это может быть немного медленнее, чем делать какой-нибудь сумасшедший мэшап на C ++, но пользователи обычно не замечают разницу между миллисекундами ......

1 голос
/ 22 июня 2010

Что касается вещей, которые уже существуют, взгляните на них:

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