Lập chỉ mục toàn văn thân thiện với dòng lệnh?


37

Có một thứ như một công cụ lập chỉ mục toàn văn bản, có thể được truy vấn từ dòng lệnh và lý tưởng nhất là không yêu cầu sử dụng gui nào cả?

Tôi đặc biệt quan tâm đến việc lập chỉ mục sách điện tử và giấy tờ của mình, vì vậy đó là sự pha trộn giữa pdf, epub và một vài djvu. (Mở) Tài liệu văn phòng sẽ tốt, nhưng thấp hơn nhiều trong danh sách của tôi.


1
bạn có thể nói cụ thể hơn về định dạng của chỉ mục không?
ixtmixilix

Điểm tốt, chỉnh sửa.
Julien

-1 Như được chỉ ra bên dưới Lucene hoặc Tracker là những lựa chọn tốt, nhưng vấn đề của bạn với "sử dụng gtk, hoặc thậm chí tệ hơn qt" là gì? Chỉ sử dụng dòng lệnh là ổn, nhưng tôi không thấy điểm chỉ trích một bộ thư viện ...
tmow

2
@tmow: điểm lấy, câu hỏi được chỉnh sửa. Không có nghĩa là làm suy yếu công việc khó khăn của bất cứ ai, xin lỗi nếu đó là cách nó đã đi qua ...
julien

Câu trả lời:


11

Bạn đã xem Lucene hay Sphinx chưa? Mặc dù ban đầu bạn sẽ cần phân tích các tài liệu bạn muốn lập chỉ mục, nhưng khi đã xong, một trong hai có thể tìm kiếm từ cli.

Đối với Lucene, có một số thông tin về việc làm điều này có sẵn .

Sphinx, mơ hồ hơn một chút, nhưng cũng có một số tài liệu có sẵn . Bạn có thể chuyển dữ liệu XML có cấu trúc mà bạn chọn cho nhân sư thông qua nguồn dữ liệu xmlpipe2.

Lucene dựa vào Java, trong khi Sphinx được xây dựng trong C ++ mà không cần phụ thuộc bên ngoài.

Một trong hai sẽ đòi hỏi một chút công việc để làm những gì bạn muốn, nhưng, có vẻ như là một giải pháp hoàn toàn khả thi.


1
Bên cạnh đó, nếu bạn muốn lập chỉ mục dữ liệu trong DB (postrgres, mysql) thì một trong hai cũng hoạt động rất tốt.
gabe.

hmm, tôi đã loại bỏ nhân sư vì quá thấp, nhưng nhìn vào xmlpipe2 có vẻ như một tập lệnh bao bọc cho pdf2txt hoặc tương tự sẽ khá dễ dàng ...
julien

+1 để đề cập trong Lucene. Tôi đã có thời gian vui vẻ với Lucene, đó là một thứ giết người !!
Nikhil Mulley

Tôi tin rằng elaticsearch dựa trên lucene, và có thể thuận tiện hơn để sử dụng (là một thứ cấp cao hơn).
off1

5

kiểm tra xapian . Nó có giao diện dòng lệnh và có thể lập chỉ mục rất nhiều định dạng.


xapian là một chỉ mục tuyệt vời, yêu thích cá nhân của tôi và được viết bằng C ++ bản địa!. Một cái gì đó sử dụng xapian sẽ là lý tưởng nhất, đối với nhiều dự án yêu cầu lập chỉ mục +1.
JM Becker


3

Trình theo dõi có thể được gọi từ dòng lệnh và gtk + không phải là một phụ thuộc cứng cho một dự án (nhưng có thể dành cho các gói).


Chà, nếu tôi không nhầm, nó vẫn sẽ cố gắng kéo (phần lớn) gnome như một sự phụ thuộc.
Julien

1
Như tôi đã nói - dự án (trong phiên bản 0.9.x ít nhất là phụ thuộc cứng duy nhất của Gnome là glib). Các gói có thể biên dịch các nhân viên mặc định lành mạnh như GUI để bạn có thể cần biên dịch nó bằng tay.
Maciej Piechotka

3

Câu trả lời này khuyến cáo sử dụng của Google kiếm mã ,

Tìm kiếm mã là một công cụ để lập chỉ mục và sau đó thực hiện tìm kiếm biểu thức chính quy trên các phần lớn của mã nguồn.

Superusers trên Debian / dẫn xuất có thể thử: sudo apt-get install codesearch


1
Câu trả lời này có một số chi tiết về cài đặt từ nguồn; trong trường hợp nó không có sẵn trong repos cho hệ điều hành của bạn: superuser.com/a/1263343/65975
ccpizza

2

Hiện tại có hai luồng Tracker, ổn định (0,8) và không ổn định (0,9). OS của bạn có thể có phiên bản 0.8, vì vậy nếu bạn có thể đủ khả năng đó (nó có một số chảy máu cạnh phụ thuộc phần mềm), đi lấy tarfile mới nhất (0.9.x). Nó có rất nhiều cải tiến trên 0,8 và hiện đang được ổn định hơn nữa để là 0,10 (số chẵn thể hiện sự ổn định). Nếu bạn chọn đi tuyến đường này, hãy sử dụng lệnh này để định cấu hình:

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

Bạn có thể sẽ không cài đặt các phụ thuộc, do đó, chỉ cần cài đặt 0.8 từ bản phân phối của bạn và chỉ cần tránh các bit GUI. Trên Debian Squeeze, Ubuntu 10.10 và Ubuntu 11.04, chúng được phân chia độc đáo. Vì vậy, ( root ) chạy:

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

Công cụ CLI cho việc này là tracker-search, vì vậy hãy chạy nó với --helptùy chọn để xem cách tận dụng lợi thế của nó :-)

ghi chú :

  • Trên Fedora 14, gói Tracker có sự phụ thuộc vào GTK +. Tôi đoán đó là vì nó bao gồm những thứ như tracker-applettracker-preferences. Tuy nhiên, chúng có một gói riêng cho tracker-search-toolgiao diện tìm kiếm GUI.
  • DjVu và ePUB không (chưa) được hỗ trợ. Đây là danh sách những gì đang có .

0

Tôi đã làm việc để viết một công cụ tìm kiếm toàn văn bản (một apropos mới) để lập chỉ mục và tìm kiếm các trang man cho NetBSD vào mùa hè này bằng Sqlite3. Nó bao gồm hai công cụ dòng lệnh:

  • makemandb: Phân tích và xây dựng một chỉ mục nội dung của các trang man.
  • apropos: Công cụ để truy vấn chỉ mục này.

Bạn có thể dễ dàng viết một công cụ tương tự cho chính mình, đối với pdf, bạn sẽ cần một thư viện để phân tích cú pháp các tài liệu pdf và tương tự như một tiện ích để phân tích các tài liệu văn phòng mở.

Bạn có thể đọc thêm về dự án ở đây

ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.