Đây là vấn đề tôi gặp phải, tôi có một bộ nhật ký có thể phát triển khá nhanh. Chúng được chia thành các tệp riêng lẻ mỗi ngày và các tệp có thể dễ dàng phát triển đến kích thước biểu diễn. Để giúp giảm kích thước, các mục nhập cũ hơn 30 ngày trở lên sẽ bị xóa.Tìm kiếm Văn bản Nhanh Qua Nhật ký
Vấn đề là khi tôi muốn tìm kiếm các tệp này cho một chuỗi nhất định. Ngay bây giờ, một tìm kiếm Boyer-Moore là chậm chạp. Tôi biết rằng các ứng dụng như dtSearch có thể cung cấp một tìm kiếm thực sự nhanh chóng bằng cách sử dụng chỉ mục, nhưng tôi không thực sự chắc chắn làm thế nào để thực hiện mà không chiếm hai lần không gian một đăng nhập đã mất.
Có tài nguyên nào tôi có thể xem có thể trợ giúp không? Tôi thực sự đang tìm kiếm một thuật toán chuẩn sẽ giải thích những gì tôi nên làm để xây dựng một chỉ mục và sử dụng nó để tìm kiếm.
Chỉnh sửa:
Grep sẽ không hoạt động vì tìm kiếm này cần được tích hợp vào một ứng dụng đa nền tảng. Không có cách nào tôi sẽ có thể xoay bao gồm bất kỳ chương trình bên ngoài vào nó.
Cách hoạt động là có giao diện người dùng web có trình duyệt nhật ký. Điều này nói chuyện với một phụ trợ máy chủ web C++ tùy chỉnh. Máy chủ này cần tìm kiếm nhật ký trong một khoảng thời gian hợp lý. Hiện tại, tìm kiếm thông qua một vài hợp đồng biểu diễn có tuổi.
Chỉnh sửa 2: Một số đề xuất này rất tuyệt, nhưng tôi phải nhắc lại rằng tôi không thể tích hợp một ứng dụng khác, đó là một phần của hợp đồng. Nhưng để trả lời một số câu hỏi, dữ liệu trong nhật ký thay đổi từ thư nhận được ở định dạng cụ thể chăm sóc sức khỏe hoặc thông báo liên quan đến các thông tin này. Tôi đang tìm kiếm để dựa vào một chỉ mục bởi vì trong khi nó có thể mất đến một phút để xây dựng lại chỉ mục, tìm kiếm hiện đang mất một thời gian rất dài (tôi đã nhìn thấy nó mất đến 2,5 phút). Ngoài ra, rất nhiều dữ liệu bị loại bỏ trước khi ghi lại. Trừ khi một số tùy chọn ghi nhật ký gỡ lỗi được bật, hơn một nửa số thông điệp tường trình bị bỏ qua.
Tìm kiếm cơ bản như sau: Người dùng trên biểu mẫu web được hiển thị danh sách các thư gần đây nhất (được phát trực tiếp từ đĩa khi họ cuộn, yay cho ajax), thông thường, họ sẽ muốn tìm kiếm thư với một số thông tin trong đó, có thể là một id bệnh nhân, hoặc một số chuỗi họ đã gửi, và vì vậy họ có thể nhập chuỗi vào tìm kiếm. Tìm kiếm được gửi không đồng bộ và máy chủ web tùy chỉnh tuyến tính tìm kiếm thông qua nhật ký 1MB mỗi lần cho một số kết quả. Quá trình này có thể mất rất nhiều thời gian khi nhật ký trở nên lớn. Và đó là những gì tôi đang cố gắng tối ưu hóa.
dùng thử với grep dưới dạng công cụ bên ngoài, nếu đủ nhanh, bạn có thể lấy mã nguồn grep grep và tích hợp trực tiếp vào ứng dụng của bạn. – gbjbaanb
Tôi muốn, nhưng đó là một vấn đề pháp lý nếu tôi bao gồm nó, tôi đã hỏi về đi xuống con đường đó. – ReaperUnreal