Przyjazne dla wiersza poleceń indeksowanie pełnotekstowe?


37

Czy istnieje coś takiego jak silnik indeksowania pełnotekstowego, który można zapytać z wiersza poleceń i idealnie nie wymagałby używania GUI?

Szczególnie interesuje mnie indeksowanie moich ebooków i artykułów, więc jest to połączenie pdf, epub i kilku djvu. (Otwarte) Dokumenty pakietu Office byłyby fajne, ale znacznie niższe na mojej liście.


1
czy możesz bardziej szczegółowo określić, jaki format przyjmuje indeks?
ixtmixilix

Dobry punkt, zredagowany.
Julien

-1 Jak wskazano poniżej Lucene lub Tracker to dobry wybór, ale jaki jest twój problem z „użyj gtk, a nawet gorzej qt”? Używanie tylko wiersza poleceń jest w porządku, ale nie widzę sensu krytykować zestawu bibliotek ...
tmow 27.01.11

2
@tmow: punkt wzięty, pytanie zredagowane. Nie chciałem podważać ciężkiej pracy nikogo, przepraszam, jeśli tak to przeszło ...
Julien

Odpowiedzi:


11

Czy spojrzałeś na Lucene lub Sfinksa? Podczas gdy będziesz musiał najpierw przeanalizować dokumenty, które chcesz zindeksować, gdy to zrobisz, każdy z nich może wyszukiwać w cli.

Dla Lucene, istnieje kilka informacji na ten sposób dostępne .

Sphinx, jest nieco bardziej niejasne, ale jest też kilka dokumentacja dostępna . Możesz przekazać strukturalne dane XML do sfinksa przez źródło danych xmlpipe2.

Lucene opiera się na Javie, a Sphinx jest zbudowany w C ++ bez żadnych zewnętrznych zależności.

Każdy z nich będzie wymagał trochę pracy, aby zrobić to, co chcesz, ale wydaje się, że jest to całkowicie wykonalne rozwiązanie.


1
Nawiasem mówiąc, jeśli chcesz indeksować dane znajdujące się w DB (postrgres, mysql), to jedno z nich również działa niewiarygodnie dobrze.
Gabe.

hmm, odrzuciłem sfinksa za zbyt niski poziom, ale patrząc na xmlpipe2 wydaje się, że skrypt otoki dla pdf2txt lub podobny byłby całkiem łatwy ...
julien

+1 za wzmiankę w Lucene. Dobrze się bawiłem z Lucene, to zabójcze rzeczy !!
Nikhil Mulley,

Wierzę elasticsearch jest oparty na Lucene i może być bardziej wygodny w użyciu (będąc rzeczą wyższego poziomu).
offby1

5

sprawdź Xapian . Ma interfejs wiersza poleceń i może indeksować wiele formatów.


xapian jest świetnym indeksem, moim osobistym faworytem i jest napisany w natywnym C ++ !. Coś, co używa Xapian byłoby najbardziej idealne, w przypadku wielu projektów wymagających indeksowania +1.
JM Becker,


3

Tracker można wywołać z wiersza poleceń, a gtk + nie jest trudną zależnością dla projektu (ale może być dla pakietów).


Cóż, jeśli się nie mylę, nadal będzie próbował wyciągnąć (duże części) gnoma jako zależność.
Julien

1
Jak powiedziałem - projekt (w wersji 0.9.x przynajmniej twardą zależnością GNOME jest glib). Pakiety mogą skompilować domyślny personel, taki jak GUI, więc może być konieczne skompilowanie go ręcznie.
Maciej Piechotka

3

Ta odpowiedź zaleca korzystanie z wyszukiwarki kodów Google ,

Wyszukiwanie kodu to narzędzie do indeksowania, a następnie wykonywania wyszukiwania wyrażeń regularnych na dużych fragmentach kodu źródłowego.

Superużytkownicy Debiana / pochodnych mogą wypróbować: sudo apt-get install codesearch


1
ta odpowiedź zawiera szczegółowe informacje na temat instalacji ze źródła; na wypadek, gdyby nie był dostępny w repozytoriach dla twojego systemu operacyjnego: superuser.com/a/1263343/65975
ccpizza

2

Obecnie istnieją dwa strumienie Trackera, stabilny (0,8) i niestabilny (0,9). Twój system operacyjny prawdopodobnie ma wersję 0.8, więc jeśli możesz sobie na to pozwolić (to ma pewne krwawienia krawędź zależności oprogramowania), przejdź chwycić ostatnią tarfile (0.9.x). Ma wiele ulepszeń w stosunku do 0,8 i obecnie jest dalej stabilizowany , aby wynosił 0,10 (liczby parzyste oznaczają stabilność). Jeśli wybierzesz tę trasę, użyj tego polecenia, aby skonfigurować:

./configure --disable-tracker-needle --disable-tracker-preferences --disable-tracker-explorer --disable-tracker-status-icon

Prawdopodobnie nie będziesz mieć zainstalowanych zależności, więc lepiej jest po prostu zainstalować 0,8 z dystrybucji i po prostu unikać bitów GUI. W przypadku Debian Squeeze, Ubuntu 10.10 i Ubuntu 11.04 są one ładnie podzielone. Więc ( jako root ) uruchom:

apt-get install --no-install-recommends tracker-utils tracker-miner-fs

Narzędzie CLI do tego jest tracker-search, więc uruchom go z --helpopcją, aby zobaczyć, jak z niego skorzystać :-)

uwagi :

  • W Fedorze 14 pakiet Trackera jest zależny od GTK +. Myślę, że to dlatego, że obejmuje rzeczy takie jak tracker-appleti tracker-preferences. Mają jednak osobny pakiet tracker-search-toolinterfejsu wyszukiwania GUI.
  • DjVu i ePUB nie są (jeszcze) obsługiwane. Oto lista tego, co jest .

0

Pracowałem nad napisaniem narzędzia do wyszukiwania pełnotekstowego (nowe apropos) do indeksowania i przeszukiwania stron podręcznika dla NetBSD tego lata za pomocą Sqlite3. Składa się z dwóch narzędzi wiersza poleceń:

  • makemandb: Który analizuje i buduje indeks zawartości stron man.
  • apropos: Narzędzie do wyszukiwania tego indeksu.

Możesz łatwo napisać dla siebie podobne narzędzie, do plików pdf potrzebujesz biblioteki do parsowania dokumentów pdf i podobnie narzędzie do analizy otwartych dokumentów biurowych.

Możesz przeczytać więcej o projekcie tutaj

Kod jest tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.