簡體   English   中英

內置庫可對100GB文件進行有效搜索

[英]Build in library's to perform effective searching on 100GB files

Java是否有任何內置庫可用於在Java中搜索約100GB的大文件中的字符串。 我目前正在使用二進制搜索,但效率不高。

如果您不想使用為搜索而構建的工具,則將數據存儲在DB中並使用sql。

據我所知,Java不包含任何帶有或不帶有索引的文件搜索引擎。 也有一個很好的理由:搜索引擎的實現本質上與輸入數據集搜索模式格式都相關 兩者中的任何細微變化都可能導致搜索引擎發生巨大變化。

為了使我們能夠提供更具體的答案,您需要:

  • 准確描述數據集:文件的數量,路徑結構和平均大小,每個條目的格式以及每個包含的令牌的格式。

  • 准確描述您的搜索模式:是那些固定的字符串,全局模式還是正則表達式? 您希望模式匹配每行中的整行還是特定標記?

  • 准確描述您所需的搜索結果:您要精確匹配還是近似匹配? 您要在文件中獲取位置還是提取特定標記?

  • 准確描述您的要求:您是否可以預先建立索引? 數據集是否需要實時修改?

  • 解釋為什么您不能使用專門為此類工作而設計的第三方庫,如Lucene。

  • 解釋為什么當前的二進制搜索(其復雜度應為O(logn)不夠有效。 具有恆定復雜性的唯一可能更快的方法就是使用哈希表。

如果您用更廣泛的術語描述問題,那可能是最好的。 例如,您可能會從樣本數據集中假設您擁有的是一組單詞以及關聯的偏移量或文檔標識符列表。 在這樣的集合中進行搜索的一種簡單方法是將單詞/文件位置索引存儲在哈希表中,以便能夠在恆定時間內訪問每個關聯列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM