Komut satırı dostu tam metin dizini oluşturma


37

Komut satırından sorgulanabilen ve ideal olarak hiç bir gui kullanılmasını gerektirmeyen tam metin indeksleme motoru gibi bir şey var mı?

Özellikle e-kitaplarımı ve kağıtlarımı indekslemekle ilgileniyorum, bu yüzden pdf, epub ve birkaç djvu karışımı. (Açık) Office belgeleri iyi olurdu, ancak listemde daha düşük.


1
Dizinin hangi formatta alındığı hakkında daha spesifik olabilir misiniz?
ixtmixilix

İyi nokta, düzenlendi.
julien

-1 Lucene veya Tracker'ın işaret ettiği gibi iyi seçimler var, fakat "gtk veya daha da kötü qt kullan" ile ilgili probleminiz nedir? Sadece komut satırını kullanmak sorun değil, ancak bir dizi kütüphaneyi eleştirme noktasını göremiyorum ...
tmow

2
@tmow: nokta alındı, soru düzenlendi. Kimsenin zor işini baltalamak istememiştim, üzgündüm, eğer öyleyse ...
julien

Yanıtlar:


11

Lucene veya Sfenks'e baktın mı? İndekslemek istediğiniz belgeleri başlangıçta ayrıştırmanız gerekecek olsa da, bir kez bu işlemden herhangi biri uçurumdan arama yapabilir.

Lucene için bunu yapmanın bir bilgisi var .

Sfenks, biraz daha belirsiz, ancak bazı belgeler de mevcut . Seçtiğiniz yapılandırılmış XML verilerini xmlpipe2 veri kaynağıyla sfenks'e aktarabilirsiniz.

Lucene Java'ya güvenirken, Sphinx C ++ 'da dışarıdan bağımlılık gerektirmeden inşa edilmiştir.

Her ikisi de istediğiniz şeyi yapmak için biraz çalışma gerektirecek, ancak tamamen uygulanabilir bir çözüm gibi görünüyor.


1
Bir kenara, eğer bir DB'deki (postrgres, mysql) verileri indekslemek istiyorsanız, bunların ikisi de inanılmaz derecede iyi çalışıyor.
gabe.

hmm, çok düşük seviyeli olduğum için Sfenks'i reddetmiştim, ama xmlpipe2'ye bakmak pdf2txt veya benzeri için bir sarmalayıcı betiği gibi görünüyordu ...
julien

Lucene'de bahsettiğin için +1. Lucene ile iyi zaman geçirdim, bu katil bir şey!
Nikhil Mulley

İnanıyorum elasticsearch Lucene dayanmaktadır ve (daha üst düzey bir şey olmak) kullanımına daha uygun olabilir.
offby1

5

Xapian'ı kontrol et . Komut satırı arayüzüne sahiptir ve birçok formatı indeksleyebilir.


xapian harika bir indeks, kişisel favorim ve doğal C ++! 'da yazılmış. Xapian kullanan bir şey, +1 dizine alma gerektiren birçok proje için ideal olacaktır.
JM Becker


3

İzleyici komut satırından çağrılabilir ve gtk + bir proje için zor bir bağımlılık değildir (ancak paketler için olabilir).


Yanılmıyorsam, yine de cücenin büyük bir bölümünü bağımlılık olarak çekmeye çalışacaktır.
julien

1
Dediğim gibi - proje (0.9.x sürümünde, en azından sadece GNOME zor bağımlılığı glib'dir). Paketler GUI gibi varsayılan aklı başında çalışan personeli derleyebilir, bu nedenle elle derlemeniz gerekebilir.
Maciej Piechotka

3

Bu cevap Google’ın kod aramasını kullanmanızı önerir ,

Kod Arama, büyük kaynak kod gövdeleri üzerinden düzenli ifade aramalarını endekslemek ve ardından gerçekleştirmek için bir araçtır.

Debian / türevleri üzerindeki süper kullanıcılar: sudo apt-get install codesearch


1
bu cevabın kaynaktan yükleme konusunda bazı detayları vardır; İşletim sisteminiz için depolarda bulunmaması durumunda: superuser.com/a/1263343/65975
ccpizza

2

Halen iki izleyici akışı vardır: kararlı (0.8) ve kararsız (0.9). İşletim sisteminizin büyük olasılıkla 0.8 sürümü var, bu yüzden parasını karşılayabiliyorsanız (bazı kanama yazılım bağımlılıklarına sahipse ), en yeni tarfile (0.9.x) 'i alın. Bu sahip iyileştirmeler çok 0.8 fazla, şu anda bir kararlı hale getirilmesi (çift sayılar stabilitesini gösterir) 0.10 için de. Bu rotaya gitmeyi seçerseniz, yapılandırmak için bu komutu kullanın:

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

Muhtemelen bağımlılıkları kurmayacaksınız, bu yüzden dağıtımınızdan 0.8 kurmak yeterlidir ve GUI bitlerinden kaçının. Debian Squeeze, Ubuntu 10.10 ve Ubuntu 11.04'te bunlar güzelce bölünmüş durumda. Böylece ( root olarak ) çalıştırın:

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

Bunun için CLI aracı tracker-search, bundan --helpnasıl faydalanabileceğini görmek için seçenekle çalıştırın :-)

notlar :

  • Fedora 14'te, Tracker paketinin GTK + 'ya bağımlılıkları vardır. Sanırım tracker-appletve gibi şeyler içeriyor çünkü tracker-preferences. Bununla birlikte tracker-search-tool, GUI arama arayüzü için ayrı bir paketi vardır .
  • DjVu ve ePUB (henüz) desteklenmiyor. İşte bunların bir listesi .

0

Bu yaz Sqlite3 kullanarak NetBSD için man sayfalarını indekslemek ve aramak için tam metin arama aracı (yeni apropo) yazmaya çalıştım. İki komut satırı aracından oluşur:

  • makemandb: Man sayfalarının içeriğinin bir dizinini ayrıştırıp oluşturan.
  • apropos: Bu dizini sorgulama aracı.

Kendiniz için kolayca benzer bir araç yazabilirsiniz, pdf'ler için pdf belgelerini ayrıştırmak için bir kütüphaneye ve benzer şekilde açık ofis belgelerini ayrıştırmak için bir yardımcı programa ihtiyacınız olacaktır.

Proje hakkında daha fazla bilgiyi burada bulabilirsiniz.

Kod burada

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.