Поиск в MySQLdb с PHP

голоса
2

Как реализовать большой поиск в пределах MySQLdb - в таблице, если я поиск с «... LIKE% ли% ....» не все entrys будут найдены - если ли в слове, например. поиск с Soundex было бы здорово - но если я прочитал инструкцию я должен создать SOUNDEX-индекс для поиска SOUNDEX значений?

Таким образом, вопрос, Что «лучшие практики», чтобы написать хороший дб-VOR Поиска по ключевым словам в простом колонке «название» или коснуться другими.

пока

Задан 09/12/2008 в 16:59
источник пользователем
На других языках...                            


2 ответов

голоса
2

Если вы не до установки и использования Сфинкса, то вы можете попробовать использовать некоторые из MySQL встроенных в полном наборе функций поиска текста, как «MATCH»

Это позволяет сделать полный текст поиска и даже ряды результатов со счетом релевантности. Вы можете писать запросы, как:

SELECT id, col1, col2, MATCH(col1, col2) AGAINST('some text' IN NATURAL LANGUAGE MODE) AS relevance FROM table1;

Вы даже можете использовать расширение запроса, чтобы поднять на других тесно связанных с ним терминов. Например, если пользователь ищет «базы данных» и топ наиболее релевантные результаты содержат «MySQL», то MySQL будет также искать «MySQL», так как он определил, что «MySQL» термин тесно связан с «базой данных» термин пользователь искал.

http://dev.mysql.com/doc/refman/5.1/en/fulltext-query-expansion.html

Ответил 09/11/2009 в 02:09
источник пользователем

голоса
2

Для поиска текста у вас есть два варианта , кроме использования LIKE условия - FULLTEXT индекса (что означает использование MyISAM) или с использованием конкретных индексации двигателей , такими как Lucene или Sphinx .

Лично я бы рекомендовал использовать Сфинкс, он имеет отличную интеграцию как с MySQL и PHP и очень быстро для поиска текста (и других запросов, а).

Ответил 09/12/2008 в 17:04
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more