Автор Тема: поиск в BLOB  (Прочитано 6318 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
поиск в BLOB
« : 26 Февраля 2006, 11:38:12 »
ситуёвина такая:
пользователь вводит текстовый запрос в форме (поискать ченить), а информация, в которой нужно искать, лежит в базе в формате BLOB. отсюда вопрос: как заставить искать текст в BLOB?

правильно ли я понимаю, что либо запрос, либо информацию из базы нужно приводить к формату (текст или BLOB)? к какому тады?

спасибо всем заранее
Пространные размышления об ИТ и все что вокруг

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
поиск в BLOB
« Ответ #1 : 27 Февраля 2006, 07:04:03 »
в общем-то проблема оказалась надуманной, оказывается в BLOB можно искать без проблем и независимо от подтипа

возник новый вопрос. делаю поиск и в запросе к базе хотелось бы использовать аналоги строковых PHP-функций, однако ничего подобного не нашел в SQL. Единственным выходом сейчас вижу такой: вытаскивать каждую запись, обрабатывать её как строку средствами PHP, а не SQL

может кто подскажет другие варианты? Всем спасибо!
Пространные размышления об ИТ и все что вокруг

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
поиск в BLOB
« Ответ #2 : 27 Февраля 2006, 10:03:01 »
В MySQL есть всякие функции.
В большинстве случаев проблема „подобных функций“ решается правильным проектированием базы. Может, стоит задуматься?

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
поиск в BLOB
« Ответ #3 : 27 Февраля 2006, 11:56:20 »
hanslinger
действительно, подумываю об этом. к сожалению материалов по тому как строятся базы индекса для поиска я не нашёл. Может подскажешь чем?

дошел лишь до того, что в таблице содержаться ИД, путь к документу, заголовок и "чистый" текст документ (весь сайт на шаблонах, поэтому смысла в поиске меню и пр. нет смысла)... вот поиск и осуществляется в заголовке и тексте документа, дальше... дальше пока ничего - размышляю
Пространные размышления об ИТ и все что вокруг

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
поиск в BLOB
« Ответ #4 : 27 Февраля 2006, 17:14:04 »
Greg
опиши задачу... нормально...
что у тебя есть?
Id документа, путь, заголовок и текст ?
поиск нужно организовать по каким полям? нужно ли пользовать словоформы и прочее...
And no religion too...

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
поиск в BLOB
« Ответ #5 : 28 Февраля 2006, 07:18:16 »
commander
поля: ид, путь, заголовок-title, текст документа (основной текст без шапок, меню и т.п. - с тегами)
поиск нужно организовать по заголовку и тексту документа
хочу сделать пока простой поиск без словоформ, но потом его модернизировать потихоньку

мои мысли таковы:
1. найти максимальное количество совпадений искомой строки в заголовке и тексте документа (причем заголовку отдать большее предпочтение)
2. вывести результаты по убыванию

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

Модераторам: может передем в алгоритмы?
Пространные размышления об ИТ и все что вокруг

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
поиск в BLOB
« Ответ #6 : 28 Февраля 2006, 10:09:12 »
Greg

на сколько серьездный поиск ты собираешся реализовывать?
т.е.
1. нужно ли строить спинеты (части текста где встречаеться искомое слово)?
2. какой объем данных по которым нужно провести поиск?

короче выложи полную инфу что есть и что надо... иначе сложно что-то подсказать по этому поводу...
And no religion too...

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
поиск в BLOB
« Ответ #7 : 28 Февраля 2006, 11:02:31 »
commander
1.на данный момент поиск осуществляется по нескольким сотням записей в базе (та информация, что храниться конкретно в базе), каждую неделю, на тысячу увеличивается, т.е. рассчитывать нужно на десятки и сотни тысяч записей

2. также имеются несколько сотен статичных документов, которые индексируются (как - описал выше)

собственно получается так, что в поиск нужно осуществлять по заголовку и тексту документа (разные таблицы построены по разному, но в принципе очень похожи).

хотелось бы на первоначальном этапе искать так:
1. совпадение фразы полностью в заголовке и документе
2. совпадени фразы в заголовке
3. совпадени фразы в тексте
4. совпадение нескольких слов фразы в заголовке и/или тексте
5. совпадение одного слова в заголовке и/или тексте

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

нужно чтобы набрав фразу "газовые котельные" человек попал на страницу новости, которая говорит о повальном перевооружении котельных области, а не получил результат со страницами (заголовки): "газовые аттаки в ираке" и пр.

на первоначальном этапе хочу сделать простой поиск без словоформ и т.п. мудреностей, далее думаю обязательно модернизировать... т.е. нужно понять весь алгоритм: от простого к сложному
Пространные размышления об ИТ и все что вокруг

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
поиск в BLOB
« Ответ #8 : 01 Марта 2006, 17:43:40 »
Greg
если будет сотни тысяч записей от БД как таковой придеться отказаться...
And no religion too...

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
поиск в BLOB
« Ответ #9 : 01 Марта 2006, 19:01:30 »
commander
каким же образом тогда искать?
Пространные размышления об ИТ и все что вокруг

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
поиск в BLOB
« Ответ #10 : 02 Марта 2006, 09:59:41 »
с BLOB\'ом кстати такая фигня вышла: пусть строка и подстрока имеют символы как в верхнем, так и в нижнем регистре. чтобы искать строчку в запросе использовал такую функцию upper() (подстроку тоже переводил в верхний регистр), но с блобом она никак не хочет работать - ругается...

может есть какое-то решение?
Пространные размышления об ИТ и все что вокруг

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
поиск в BLOB
« Ответ #11 : 03 Марта 2006, 14:53:29 »
Greg
Цитировать
каким же образом тогда искать?

пользовать файлы...

Greg
Цитировать
может есть какое-то решение?

ИМХО напиши сам эту функцию... сложности там нет...
And no religion too...

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
поиск в BLOB
« Ответ #12 : 10 Марта 2006, 14:39:18 »
commander
т.е. индекс держать в файле?
Пространные размышления об ИТ и все что вокруг

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
поиск в BLOB
« Ответ #13 : 17 Марта 2006, 18:27:14 »
Greg
инфу держать в файле... а индексы в оперативной памяти..
And no religion too...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28