Indeksowanie pełnotekstowe
Istnieją narzędzia takie jak recoll , swish-e i sfinks, ale musisz sprawdzić, czy mogą one obsługiwać potrzebne kryteria wyszukiwania.
Przypomnij
Recoll to osobiste narzędzie do wyszukiwania pełnotekstowego dla systemów Unix / Linux.
Swish-e
Swish-e to szybki, elastyczny i darmowy system open source do indeksowania kolekcji stron internetowych lub innych plików.
Sfinks
Sphinx umożliwia indeksowanie i wyszukiwanie danych przechowywanych w bazie danych SQL, pamięci NoSQL lub po prostu w plikach szybko i łatwo
grep
Dziwi mnie, że grep działa tak wolno, jak to opisujesz. Czy możesz zmniejszyć liczbę przeszukiwanych plików? Na przykład, gdy muszę tylko przeszukać pliki źródłowe w poszukiwaniu jednego pliku wykonywalnego (spośród wielu w projekcie), podaję grep nazwy z polecenia, które wyświetla listę plików źródłowych dla tego programu:
grep expression `sources myprogram`
sources
to program specyficzny dla mojego środowiska programistycznego, ale możesz mieć (lub być w stanie zbudować) coś równoważnego.
Zakładam, że wypróbowałeś oczywiste techniki, takie jak
find /foo/myproject -name "*.c" -exec fgrep -l searchtext
Czytałem sugestię, że -P
opcja prądu grep
może znacznie przyspieszyć wyszukiwanie.