|
|
|
Алгоритм поиска в тексте
|
|||
|---|---|---|---|
|
#18+
Имеется множество текстовых файлов. Хочу сделат быстрый поиск текста через използовании индексов. Цел что бы не сканит при каждом поиске все файлы (медлено), а използоват индекс. Проблема - нужна идея как ето делается. Если я ищу целое слово то более менее ясно. Делат список слов которые имеются в файле и можно бысто найти в индексе есть ли искомое слово в файле. Но если я хочу найти част слова - например ищу "оскв" а в файле ест "москва" то как создат такой индекс? Подчасты слов очен болшое - нереално всех записат в индексе. Мой вопрос в том как ето делается? Быстро найти фрагмент текста в "индексе" не преребирая весь файл? Алгоритм? Идея? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2008, 15:41 |
|
||
|
Алгоритм поиска в тексте
|
|||
|---|---|---|---|
|
#18+
Использовать БД или бесплатный поисковый движок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2008, 16:32 |
|
||
|
Алгоритм поиска в тексте
|
|||
|---|---|---|---|
|
#18+
Ищи части слов в том же словаре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 08:39 |
|
||
|
Алгоритм поиска в тексте
|
|||
|---|---|---|---|
|
#18+
Lucene и его порты под необходимые платформы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 09:10 |
|
||
|
Алгоритм поиска в тексте
|
|||
|---|---|---|---|
|
#18+
Мне интересен сам алгоритм. Как ето делается? "Ищи части слов в том же словаре" - ето имеется ввиду индекс? Если индекс содержит толко целые слова а я ищу части слова то мне надо сканит вес индекс. То тогда толку в индекса никакого. Лучше искат в текстовом файле . Кроме как сделат очень большой индекс со всеми частями слов мне ничего другого не приходит в голову. Так еще раз - какой алгоритм/индекс/идея что бы быстро искать част слова в текстовом файле не перебирая вес файл? (Искал в инете, но на идею не попал. По словам "поисковый движок" нашел много чего, то толко сам продукт, а как ето работет не нашол). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 11:04 |
|
||
|
Алгоритм поиска в тексте
|
|||
|---|---|---|---|
|
#18+
Делай индекс по буквам - чтобы каждая буква указывала на слово (или файл), которое содержит эту букву. Находишь ссылки на все слова, которые содержат бакву , потом букву с и т.д.. потом пересекаешь ссылки, и получаешь слова, которые содержат все эти буквы. ну а потом находишь вслова, где порадок букв совпадает Пол года назад делал подобную систему (не для поиска слов, вообще). Система строилась на BPlusTree. Получалось при размере листа дерева в 1000 нодов для нахождения значений одного индекса из 1 млрд в худшем случае требовалось 30 сравнений (использовался бинарный поиск). Т.е. для поиска всез слов, состоящих из оскв, потребуется максимум 120 сравнений + пересечение полученного результата и поиск слов с правильным порядком букв ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 11:22 |
|
||
|
Алгоритм поиска в тексте
|
|||
|---|---|---|---|
|
#18+
Я для этих целей использовал SQLite, MySql и Clucene. У каждого из них есть свои плюсы и недостатки. Подробности ищи в инете по фразам: 'full text search' или 'полнотекстовый поиск'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 15:27 |
|
||
|
Алгоритм поиска в тексте
|
|||
|---|---|---|---|
|
#18+
текстМне интересен сам алгоритм. Как ето делается? "Ищи части слов в том же словаре" - ето имеется ввиду индекс? Если индекс содержит толко целые слова а я ищу части слова то мне надо сканит вес индекс. То тогда толку в индекса никакого. Лучше искат в текстовом файле . Кроме как сделат очень большой индекс со всеми частями слов мне ничего другого не приходит в голову. Так еще раз - какой алгоритм/индекс/идея что бы быстро искать част слова в текстовом файле не перебирая вес файл? (Искал в инете, но на идею не попал. По словам "поисковый движок" нашел много чего, то толко сам продукт, а как ето работет не нашол). -- суффиксные деревья -- суффиксные массивы -- алгоритм Укконена В некоторых источниках - позиционные деревья. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 16:22 |
|
||
|
Алгоритм поиска в тексте
|
|||
|---|---|---|---|
|
#18+
текстМой вопрос в том как ето делается? Быстро найти фрагмент текста в "индексе" не преребирая весь файл? Алгоритм? Идея? Тебе нужно просто искать фрагмент текста? Используй Microsoft Indexing Service! Он входит в состав любой современной Винды. Если хочешь изучить теорию и разобратся - спроси список литературы по теме text search. Всего! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 17:45 |
|
||
|
Алгоритм поиска в тексте
|
|||
|---|---|---|---|
|
#18+
определяете что искать, например, "длинное предложение" или "слово" или пару символов (понятно, что чем короче фраза тем поиск будет работать быстрее) далее переводите "искомое" в массив кодов, используя функцию ASC , потому что строчные переменные работают медленнее, чем integer или byte Код: plaintext 1. 2. 3. 4. 5. 6. найденную часть переводите обратно в символы с помощью функции CHR и показываете (или что там собираетесь с ней делать) буквально за несколько секунд, в файле 100 Мб (допустим) можно найти слово (да и вообще не важно что). Разумеется не стоит пренебрегать литературой, где изложены алгоритмы поиска. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 08:02 |
|
||
|
Алгоритм поиска в тексте
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 11:47 |
|
||
|
Алгоритм поиска в тексте
|
|||
|---|---|---|---|
|
#18+
klen_..Даже не знаю, что сказать. Хочется встать и поаплодировать изобретателю алгоритмов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2008, 01:27 |
|
||
|
Алгоритм поиска в тексте
|
|||
|---|---|---|---|
|
#18+
и действительно может какая системная dll есть, чтобы велосипед не изобретать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2008, 07:56 |
|
||
|
Алгоритм поиска в тексте
|
|||
|---|---|---|---|
|
#18+
mayton klen_..Даже не знаю, что сказать. Присоединяюсь :) Хотя это: klen_ Разумеется не стоит пренебрегать литературой, где изложены алгоритмы поиска.Если его переписать в виде Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2008, 17:55 |
|
||
|
Алгоритм поиска в тексте
|
|||
|---|---|---|---|
|
#18+
klen_и действительно может какая системная dll есть, чтобы велосипед не изобретать Тут дело не только в деэльэльке. Система нужна Фантазия людей очень ограничена. И поиск они задают одинаковый. Например 4 млрд. пользователей Интернет за последние полчаса задали поиск Эмма_Уотсон_фото. Для каждого замаханетесь диэльэльки запускать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2008, 20:23 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=35466867&tid=1345096]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
165ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 474ms |

| 0 / 0 |
