LINUX.ORG.RU

Large scale grep

 ,


0

1

Есть порядка ~100к текстовых файликов, на ~20gb total. Есть список query строк (50к, 10m total)

Какой наименее геморойный, но при этом достаточно быстрый способ выполнить поиск подстрок из query?



Последнее исправление: Anvill (всего исправлений: 1)

Загнать тексты в какой-нибудь elasticsearch. А так если нужен именно grep то кроме грепа в for-do-done по списку query (можно с parallel) вариантов особо и нет.

micronekodesu ★★★
()

поиск подстрок из query

grep

fulltext search

Ты что-то недоговариваешь. Причём здесь fulltext search в тегах?

Pravorskyi ★★★
()

Наименее геморройный:
grep -F query *.txt

zolden ★★★★★
()

fulltext search действительно ни к чему, нужен обычный поиск подстроки.

Grep один запрос за 3 минуты обрабатывает, ripgrep за 12 минут. Это не геморно, но не проходит по критерию «достаточно быстро»

Anvill
() автор топика

я бы посмотрел на find -type f | xargs -P X fgrep -f ...

vel ★★★★★
()
Ответ на: комментарий от Anvill

fulltext search действительно ни к чему, нужен обычный поиск подстроки

а подстроку ты как будешь искать? 3 минуты это норм. вот когда пару сотен терабайт грепать надо...

upcFrost ★★★★★
()
Ответ на: комментарий от Anvill

Grep один запрос за 3 минуты обрабатывает

А если все паттерны сразу загрузить?

grep -Ff patterns.txt wheretosearch.txt

legolegs ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.