- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Ищет, только если эта часть слова с начала слова идет.
Это плохо.
Так а как вы предполагаете использование индекса, если вы не указываете явно начало слова?
И вообще, в каких случаях требуется такой поиск?
Конечно, можно немного извратиться и сделать в базе дополнительную колонку, в которую записывать весь текст для поиска, в котором за каждым словом будет следовать его перевёртыш, например так:
"сделать ьталедс в в базе езаб дополнительную юуньлетинлопод колонку укнолок в в которую юуроток записывать ьтавысипаз весь ьсев текст тскет для ялд поиска аксиоп"
Поиск делать по этой самой колонке, а в строке поиска делать замену слов вида "*слово" на "оволс*".
При этом и индексы будут использоваться и релевантность сохранится ...
Но в результате размер базы увеличится в 3 раза, а скорость поиска упадёт.
Не ищет.
in boolean mode - ищет
http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html
apple*'
Find rows that contain words such as “apple”, “apples”, “applesauce”, or “applet”.
Таблица объектов:
id_obj, name_obj, text_obj
Таблица слов - все слова, что есть в объектах, а точнее в полях name_obj и text_obj, этакий словарик
id_word, text_word
Поле text_word индексируем
Таблица соответствий - где прописываем связи между словами и объектами
id_word, id_obj
Далее ищем по части слова в таблице слов, через like, индексы не работают, но все равно ищется быстрее, чем в таблице объектов по полям name_obj и text_obj, т.к. слова в таблице слов не повторяются.
Ну и выбрав id_word ищем конкретные объекты
Как-то так думал делать
humbert добавил 22.09.2011 в 18:28
netwind, а как искать по *pple*?
netwind, а как искать по *pple*?
да, действительно не ищет
humbert добавил 22.09.2011 в 18:28
netwind, а как искать по *pple*?
По части слова без начала и без конца ищите обычной регуляркой.
Ищу так name_pole like '%часть слова%'
Это правильно?
P.s. если несколько слов (фраза), то так name_pole like '%часть слова1%' or name_pole like '%часть слова2%' or name_pole like '%часть слова3%'
Ищу так name_pole like '%часть слова%'
Это правильно?
ты опять? в зависимости от твоих правил. правильность - понятие не применимое к разработке ПО.
правильность - понятие не применимое к разработке ПО.
Полностью согласен. Зависит от поставленной задачи.
По теме - сравнение скорости LIKE и FULLTEXT
P.s. если несколько слов (фраза), то так name_pole like '%часть слова1%' or name_pole like '%часть слова2%' or name_pole like '%часть слова3%'
Так все строки таблицы дёргаются 3 раза. И да, LIKE не использует индексы.
Я, конечно, могу ошибаться, но я бы делал так:
1. Пишем регулярку для разбора слова или фразы.
2. Прогоняем текст через неё, чтобы на выходе получить строку со значениямим через запятую.
3. По базе ищем через WHERE MATCH([поля таблицы]) AGAINST([значения, полученые на выходе из обработки регулярки]) используя индекс FULLTEXT.
Сугубо ночное SQL-ИМХО. :)
sphinx очень хорошо и главное быстро все ищет!
palladin_jedi, а можно пример такого запроса?
Есть набор слов в поиске "охо рава ест" - это обрывки слов, не с самого начала.
Как искать по всем встречающимся этим словам, не используя три like?
А то я что-то не придумал пока ничего.
humbert добавил 23.09.2011 в 07:59
ты опять? в зависимости от твоих правил. правильность - понятие не применимое к разработке ПО.
Если я буду искать нужные записи так: "Select *From table" - выберу все строки из БД и в цикле буду просматривать строки и искать нужные. Это правильно? :)