Câu hỏi Tại sao Google nhanh hơn rất nhiều so với tìm kiếm trên ổ cứng?


Khi tôi tìm kiếm một tập tin trên HD của tôi trong Windows 7 hoặc Windows XP phải mất một vài phút để hoàn thành quá trình. Nếu tôi điền cụm từ tìm kiếm vào Google, câu trả lời sẽ hiển thị trên màn hình của tôi tính bằng mili giây

Google có thể tìm kiếm Internet như thế nào, lớn hơn nhiều lần so với ổ cứng của tôi, nhanh hơn hệ điều hành của tôi có thể tìm kiếm trên máy tính của tôi? Nó chỉ là vấn đề về sức mạnh tính toán và thuật toán đúng không?


247
2018-04-03 18:44


gốc


Bạn đã thử lập chỉ mục tất cả các tệp trên ổ đĩa của mình và chỉ tìm kiếm chỉ mục? Thử Mọi điều và nhìn thấy. - Karan
Máy tính để bàn của Google "được sử dụng" để làm điều đó cho các cửa sổ cũng ... - rogerdpack
Google tìm kiếm thông qua các chỉ mục được lưu trữ trong RAM, không phải thông qua các tệp trên ổ cứng. - Ari
Chỉ mục này rất quan trọng, nhưng Google cũng sử dụng thuật toán giảm bản đồ để tiến hành một loạt các hoạt động song song. Cho dù bạn có bao nhiêu lõi trong máy tính của mình, tôi đảm bảo Google có nhiều hơn. - Adam Wuerl
Không có gì ngăn cản việc triển khai tìm kiếm trên máy tính để bàn bằng cách sử dụng lập chỉ mục. Tuy nhiên, hãy nhớ rằng Google có đủ tiền mặt cho một) rất nhiều CPU / máy chủ rất nhanh để song song một truy vấn; b) rất nhiều RAM rất nhanh để tránh phải truy cập đĩa; c) nhiều ổ đĩa cứng nhanh hơn nhiều so với ổ cứng bạn sử dụng; d) rất nhiều kỹ sư rất thông minh để tối ưu hóa các thuật toán có liên quan. (Ví dụ: lưu trữ kết quả cho (rất nhiều) truy vấn được sử dụng thường xuyên và nhiều hơn thế nữa.) Nó không phải là "chỉ" một câu hỏi của một trong số này, đó là tất cả những diễn xuất trong buổi hòa nhạc. - millimoose


Các câu trả lời:


Google không tìm kiếm trên Internet: nó đang tìm kiếm một chỉ mục. Google có các trang trại máy chủ lớn đang liên tục quét và lập chỉ mục internet. Quá trình này mất rất nhiều thời gian, giống như việc tìm kiếm ổ cứng chưa được lập chỉ mục của bạn. Trong Windows 7, có một tùy chọn để lập chỉ mục ổ đĩa cứng của bạn. Quá trình này mất một thời gian lúc đầu nhưng một khi nó được dựng lên và chạy các kết quả tìm kiếm sẽ ngay lập tức.

Nếu bạn muốn biết thêm về cách tìm kiếm của Google hoạt động, bạn có thể đọc bài viết của Google "Cách hoạt động của tìm kiếm"hoặc đọc bài viết"Cách hoạt động của nội dung: Cách hoạt động của Google".


210
2018-04-03 18:53



Đoạn cuối: liên kết này có nhiều thẩm quyền hơn và tổng thể tốt hơn. - ulidtko
Tha thứ sự tò mò của tôi, nhưng không hệ thống tập tin đã lập chỉ mục các tệp trên đĩa? Không phải những gì bạn nhìn thấy trong tệp của bạn khám phá một chỉ mục liên kết đến các lĩnh vực vật lý thực tế trên đĩa? Tại sao chúng ta, sau đó, cần phải làm nhiều hơn lập chỉ mục? - Adi
@Adnan chỉ mục hệ thống tệp được thiết kế để tìm vị trí nơi tệp được lưu trữ trên phương tiện vật lý. Nó giống như chỉ mục của một cuốn sách cho bạn biết trang nào mà một chương bắt đầu. Chỉ mục tìm kiếm được thiết kế để tìm nội dung. Chỉ mục tìm kiếm tốt không chỉ lập chỉ mục tên tệp mà còn nội dung của các loại tệp đã biết như pdf, doc, html, ... Chỉ mục nâng cao sử dụng từ đồng nghĩa, vì vậy nếu bạn tìm kiếm "xe hơi", nó cũng có thể tìm thấy kết quả từ "ô tô". - Simon
@ Quảng Nam, hệ thống tập tin không thực sự là một "chỉ số", chỉ là một cây tên tập tin. Tìm kiếm cây đó không nhanh, bởi vì cấu trúc của nó không được tối ưu hóa để tìm kiếm. OTOH google (và cơ sở dữ liệu) sử dụng các cấu trúc chỉ mục được sắp xếp cụ thể, giúp tìm kiếm các mục nhập cụ thể nhanh như chớp. Thậm chí sau đó, không phải tất cả tìm kiếm đều có thể hưởng lợi từ chỉ mục đó và sẽ chậm (er). - PiRX
@ Quảng Nam Trong một ý nghĩa, cây FS được tối ưu hóa chống lại đang tìm kiếm. Nó được thiết kế để cho phép giải quyết các địa điểm đã biết. Từ nút gốc của bạn, tất cả những gì bạn nhận được là một danh sách các thư mục và tập tin trong thư mục gốc. Mỗi thư mục chỉ biết về các tệp trong đó và các thư mục bên dưới nó. Truy cập một filepath được biết đến là rất nhanh theo điều này, và nó cung cấp rất nhiều tính linh hoạt, nhưng không tồn tại một danh sách toàn cầu các tập tin để tìm kiếm thông qua. Bạn phải luôn luôn đi xuống qua cây thư mục và điều đó tạo ra rất nhiều tra cứu riêng biệt. - Phoshi


Google giống như tìm kiếm các trang màu vàng cho một địa chỉ (được lập chỉ mục). Windows tìm kiếm giống như lái xe xung quanh kiểm tra số trên các tòa nhà (không lập chỉ mục).

Một sự tương tự sẽ xem xét thông qua một thư viện được tổ chức tốt và danh mục thẻ, hoặc chỉ phân loại thông qua một đống sách không tổ chức mỗi lần.

Về cơ bản nó là tất cả các công việc tổ chức thực hiện trước khi tìm kiếm mà làm cho nó nhanh.

FYI: Khi tìm kiếm các vị trí được lập chỉ mục, tìm kiếm cửa sổ có thể phản hồi nhanh.


71
2018-04-03 21:09



Hoặc: Quét sách giáo khoa và xem nội dung (chi tiết) - bobobobo


Doanh nghiệp của Google đang tìm kiếm (và phân phát quảng cáo) và nó rất tập trung vào điều đó. Có một số điều mà Google thực hiện để đảm bảo dữ liệu được trả lại cho bạn rất nhanh:

  • Đầu tiên nó sử dụng MapReduce và PageRank để tạo ra một chỉ mục toàn diện của World Wide Web. Nó cập nhật thường xuyên này để kết quả là tươi.
  • Chỉ mục đó được phân phối và nhân rộng trên nhiều máy chủ của Google
  • Truy vấn của bạn được chia thành nhiều máy chủ để tạo kết quả được trả về. Điều này cho phép quá trình được song song cao.
  • Các truy vấn và kết quả phổ biến được lưu trong bộ nhớ cache, làm giảm nhu cầu thực hiện tìm kiếm.

Xem liên kết này để biết thêm thông tin về Cách hoạt động của tìm kiếm

So sánh một tìm kiếm ổ đĩa cứng mà không có một chỉ mục đã đọc qua tất cả các tập tin trên ổ đĩa và điều này có thể mất rất nhiều thời gian.

Ngoài ra, bạn có thể nghĩ về cả hệ thống tập tin và chỉ mục dưới dạng cây. Trong hệ thống tập tin gốc của cây là thư mục cấp cao nhất và nó có thể có các nhánh (thư mục) hoặc lá (tệp) trong một thư mục đó. Mỗi chi nhánh có thể có các nhánh phụ cho nhiều thư mục hơn và để lại nhiều tệp hơn. Để tìm kiếm cấu trúc này, bạn phải 'đi bộ' tất cả các nhánh (và nhánh phụ) để tìm lá bạn đang tìm kiếm. Một chỉ mục flips phân cấp này xung quanh. Các cơ sở trở thành bảng chữ cái và tất cả các chi nhánh phụ tinh chỉnh thêm về điều này. Lá là vị trí của mục bạn đang tìm kiếm. Tìm kiếm cấu trúc này cho phép bạn cắt tỉa (loại trừ) các phần lớn của cây (ví dụ: chữ cái đầu tiên của cụm từ tìm kiếm của bạn cho phép bạn cắt bớt 25 nhánh khác ngay lập tức).


36
2018-04-03 20:44





Khoảng 4 năm trước, tôi cũng tự hỏi mình câu hỏi tương tự. Nhưng khi tôi googled xung quanh làm nghiên cứu của tôi cuối cùng tôi đọc rằng bên cạnh thực tế là họ thuê tốt nhất của tốt nhất để đến với một số thuật toán tìm kiếm tinh vi nhất và tất cả điều đó.

Một trong những thiết kế chính mà họ sử dụng là tương tự như ý tưởng của bản đồ giảm tôi nghĩ. Bạn có rất nhiều máy tính giá rẻ trên các trang trại. Hãy để những máy tính này chỉ có khoảng 80 gig dung lượng đĩa cứng và đẩy mạnh để có RAM khoảng 16 gig hoặc thậm chí tốt hơn 32 gig RAM trên những máy tính này (càng nhiều càng tốt). Hãy nhớ rằng chúng được kết nối thông qua một số hệ thống phức tạp mà chúng được thiết kế. Nhưng ý tưởng chính ở đây là khi một truy vấn được gửi, nó được chuyển vào hệ thống của họ, nơi nó sẽ thử và tìm kiếm dữ liệu mới trong RAM. Hãy nhớ rằng họ có rất nhiều máy tính giá rẻ này. Và vì dữ liệu nằm trong RAM, nó được tìm thấy nhanh hơn rất nhiều so với đĩa cứng. Nhưng đừng quên rằng họ có một hệ thống phức tạp (lập chỉ mục và tất cả những thuật toán) quá giúp ích rất nhiều.

Và dữ liệu này không phải là mới mẻ, bởi vì tất cả chúng ta đều biết rằng Google lưu trữ mọi thứ. Vì vậy, như những gì cần được trong RAM, nguyên tắc tương tự với cây splay có thể được sử dụng, giữ những gì bao giờ mọi người đang tìm kiếm nhiều nhất trong RAM và tuôn ra công cụ tìm kiếm ít nhất để đĩa cứng.

Ý tưởng nhỏ này kết hợp với việc lập chỉ mục của họ và tất cả những thứ khác mà người khác đã đề cập trong câu trả lời của họ, có thể là một trong những lý do tại sao nó nhanh hơn tìm kiếm trên ổ đĩa cứng.

  • Sức mạnh dự đoán dựa trên các tìm kiếm khác.
  • Dữ liệu có nhiều khả năng nhất trong RAM mà chúng ta đều biết là nhanh hơn.
  • Sử dụng nhiều hệ thống để phân chia và chinh phục
  • Tìm kiếm là ưu tiên hàng đầu của họ.

Tất nhiên tôi có thể sai, nhưng điều này có ý nghĩa với tôi. Và tôi hài lòng với những gì tôi đã học được.


30
2018-04-03 22:57



Bạn đóng đinh nó trên một số trong những điều mà người khác, áp phích phổ biến hơn bị mất. Google không tìm kiếm mọi thứ thường xuyên. Chắc chắn không phải trên toàn bộ internet, và thậm chí không phải tất cả mọi thứ trong bộ nhớ cache của chính nó. Hơn nữa, khi bạn tìm kiếm trên Google.com.vn, tìm kiếm thực tế không xảy ra trong thời gian thực, chỉ cần sao chép nhanh và hiển thị kết quả tìm kiếm đã được Google sản xuất và tổ chức trong những tháng qua. Nó rất phức tạp để mô tả quá trình sản xuất / tổ chức, nhưng nó có thể mơ hồ được gọi là "lập chỉ mục" như ai đó đã nói. - Joseph Myers
Nó rất phức tạp để mô tả quá trình sản xuất / tổ chức .... Vâng, đó là những gì tôi gọi là một phần tinh vi của nó. Thumbs up, bạn tóm tắt nó tốt. - Touch
@JosephMyers google lập chỉ mục liên tục. Thực hiện tìm kiếm về câu hỏi được yêu cầu trên SuperUser trước đó trong ngày (ví dụ: google.com/search?q=google+faster+than+a+hard+drive) và nó xuất hiện trong kết quả. - Brad Patton
@Touch Tôi đồng ý về các tìm kiếm trong RAM. Đây là điểm thứ tư trong bài viết của tôi về bộ nhớ đệm - Brad Patton
@Brad Patton Đúng. Tôi đã đề cập đến nó bởi vì nó là cơ sở của những gì tôi đã học được. Và một phần về lập chỉ mục liên tục, phần lập chỉ mục cũng là phần tổ chức. Vì vậy, tuyên bố giữ rằng bạn tìm kiếm những gì đã được tổ chức và không phải những gì đang được lập chỉ mục vào lúc này. Đối với lý do tại sao kết quả được hiển thị, stackoverflow có độ tin cậy cao hơn nhiều trang web, do đó nó là tốt để ý tưởng để chỉ số nó thường xuyên hơn. Đó là lý do tại sao nó xuất hiện. Nếu không phải vậy, bạn sẽ phải đợi một hoặc hai ngày trước khi những gì bạn tìm kiếm xuất hiện. Tôi nghĩ đó là điều ông JosephMyers đang nói. - Touch


Google sử dụng một hệ thống lập chỉ mục cực kỳ tinh vi, các hoạt động song song và một số kỹ thuật cân bằng tải không có sẵn cho một máy tính độc lập tiêu chuẩn. có rất ít sự giống nhau giữa tìm kiếm trên web và tìm kiếm tệp đĩa cứng và google tối ưu hóa rất nhiều cho các trường hợp sử dụng cụ thể của họ.


20
2018-04-03 18:49





Năm 2004, một số nhân viên của Google đã xuất bản một bài báo: MapReduce và từ đó họ cải thiện hàng trăm lần.

Ngoài ra, họ sử dụng Hệ thống tệp của Google (GFS) đó là một hệ thống tệp phân tán như Hệ thống tệp phân phối Hadoop (HDFS) và cực kỳ tối ưu hóa cho mục đích của họ. Cũng như tôi biết, GFS hoạt động có thể hàng nghìn lần nhanh hơn HDFS.


4
2018-04-04 06:49





Tôi nghĩ rằng tôi sẽ thêm vào này như tôi cũng đã có câu hỏi này một thời gian trước đây và tìm thấy những video tuyệt vời mô tả những gì Google làm trên bề mặt. Thú vị để xem.

Google trên Youtube 1
Google trên Youtube 2

Anh ta đi sâu hơn một chút nhưng không đủ sâu khiến bạn bị lạc trong các kỹ thuật.

Chúc mừng.


2
2018-04-04 00:14





Chỉ cần thêm một cái gì đó cho các câu trả lời tuyệt vời ở đây. Google sử dụng bộ nhớ đệm của các cụm từ tìm kiếm phổ biến. Kết quả của các tìm kiếm này nằm trong bộ nhớ. Vì vậy, nếu bạn tìm kiếm một cái gì đó được tìm kiếm rất nhiều, kết quả sẽ hiển thị gần như ngay lập tức.


1
2018-04-08 06:34





Để trả lời câu hỏi trên một mức độ đơn giản: hãy tưởng tượng bạn có sách giáo khoa với chỉ mục từ khóa ở phía sau.

Tìm kiếm một đĩa cứng (ngây thơ, ít nhất) cũng giống như xem qua cuốn sách, từng trang một, quét từng dòng cho một sự xuất hiện của từ khóa của bạn.

Sử dụng công cụ tìm kiếm trên Internet giống như tìm kiếm từ khóa trong chỉ mục và sau đó chuyển trực tiếp đến số trang mà nó cung cấp.

Trong thực tế tất nhiên, nó phức tạp hơn rất nhiều. Ví dụ, bạn thường sẽ tìm kiếm đĩa cứng của bạn cho các loại thông tin khác nhau hơn so với Internet. Nhưng điều cơ bản để lấy đi là công cụ tìm kiếm đang sử dụng một chỉ mục. Nó đã trải qua "cuốn sách", từng chữ một, và nó đã biên soạn một danh sách những từ đó cùng với nơi tìm chúng, và nó đã tổ chức danh sách theo cách mà nó có thể tra cứu mọi thứ trong nó rất nhanh chóng .

Ví dụ, suy nghĩ về việc tổ chức một chỉ mục trong một cuốn sách. Thứ nhất, nó thường được sắp xếp theo thứ tự bảng chữ cái, và thứ hai nó có thể có tiêu đề thư. Khi bạn tra cứu một từ trong chỉ mục, bạn có thể thấy ngay lập tức danh sách các từ bắt đầu bằng chữ cái bạn muốn. Và bởi vì danh sách được sắp xếp, rất dễ dàng để tìm từ bạn muốn trong danh sách, hoặc để nói nhanh nếu nó bị thiếu.

Vì vậy, để tóm tắt, nó giống như đĩa cứng của bạn chỉ có một cuốn sách, trong khi công cụ tìm kiếm có chỉ mục. Mặc dù như một số người khác đã chỉ ra, nó có thể sử dụng phần mềm để lập chỉ mục đĩa cứng của bạn, và sau đó bạn có thể sử dụng chỉ mục thay vì toàn bộ điều.


0
2018-04-07 04:09





Tôi đoán một trong những lý do khiến Google nổi lên Auto Complete và được sử dụng AJAX là vấn đề tốc độ. Bây giờ khi bạn đang gõ, từ được gửi trong nền để Google có thể làm một phần công việc trong khi bạn chưa hoàn thành. Các chỉ mục cũng dựa trên nhiều kết hợp từ (mà bạn có thể tìm thấy dưới dạng đề xuất ở cuối trang). Hiện tại tốc độ mạng cao hơn ổ cứng và có lẽ nhiều trong số những chỉ số này nằm trong RAM của các máy chủ trong trang trại của họ.


-1
2018-04-06 18:49