Tại sao Google nhanh hơn nhiều so với tìm kiếm ổ cứng?


251

Khi tôi tìm kiếm một tệp trên HD của mình trong Windows 7 hoặc Windows XP, phải mất vài phút để hoàn tất quy trình. Nếu tôi điền cụm từ tìm kiếm vào Google, câu trả lời sẽ xuất hiện trên màn hình của tôi sau mili giây

Làm thế nào để Google có thể tìm kiếm Internet, 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? Có phải chỉ là vấn đề về sức mạnh tính toán và thuật toán phù hợp?


99
Bạn đã thử lập chỉ mục tất cả các tệp trên ổ đĩa của bạn và chỉ tìm kiếm chỉ mục? Hãy thử mọi thứ và xem.
Karan

11
Máy tính để bàn của Google "được sử dụng" để làm điều đó cho windows cũng ...
rogerdpack

14
Google tìm kiếm thông qua các chỉ số được lưu trữ trong RAM, không phải qua các tệp trên ổ cứng.
Ari

13
Chỉ mục rất quan trọng, nhưng Google cũng sử dụng thuật toán thu nhỏ bản đồ để tiến hành một tập hợp các hoạt động song song ồ ạt. Cho dù bạn có bao nhiêu lõi trong máy tính, tôi đảm bảo Google có nhiều hơn.
Adam Wuerl

41
Không có gì ngăn cản việc thực hiện 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 a) rất nhiều CPU / máy chủ rất nhanh để song song 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 ổ đĩa 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 liên quan. (Ví dụ: lưu trữ các kết quả cho (rất nhiều) các truy vấn được sử dụng thường xuyên và nhiều hơn nữa.) Đây không phải là "chỉ" một câu hỏi trong số này, tất cả đều là những câu hỏi diễn xuất trong buổi hòa nhạc.
millimoose

Câu trả lời:


211

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ủ khổng lồ 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 tìm kiếm của bạn. Trong Windows 7, có một tùy chọn để lập chỉ mục các ổ đĩa cứng của bạn. Quá trình này ban đầu mất một chút thời gian nhưng một khi nó hoạt động và 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 hoạt động của tìm kiếm Google, bạn có thể đọc bài viết " Cách tìm kiếm hoạt động " của Google hoặc đọc bài viết " Cách thức hoạt động: Cách Google hoạt động ".


46
Đoạn cuối: liên kết này có thẩm quyền hơn nhiều và tổng thể tốt hơn.
ulidtko

4
Xin tha thứ cho sự tò mò của tôi, nhưng hệ thống tập tin không lập chỉ mục các tập tin trên đĩa? Không phải những gì bạn thấy trong trình thám hiểm tệp của mình chỉ là 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ập chỉ mục nhiều hơn ?
Adi

9
@Adnan chỉ mục hệ thống tệp được thiết kế để tìm vị trí lưu trữ tệp 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 chương nào bắt đầu. Một chỉ mục tìm kiếm được thiết kế để tìm nội dung. Một chỉ mục tìm kiếm tốt không chỉ lập chỉ mục tên tệp mà cả nội dung của các loại tệp đã biết như pdf, doc, html, ... Các chỉ mục nâng cao cũng sử dụng từ đồng nghĩa, vì vậy nếu bạn tìm kiếm "xe hơi" thì cũng có thể tìm thấy kết quả với từ "ô tô".
Simon

3
@Adnan, hệ thống tệp không thực sự là một "chỉ mục", chỉ là một cây tên tệp. Tìm kiếm cây như vậy không nhanh, 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 mục nhập cụ thể nhanh như chớp. Ngay cả sau đó, không phải tất cả các tìm kiếm có thể được hưởng lợi từ chỉ mục như vậy và sẽ chậm (er).
PiRX

8
@Adnan Theo một nghĩa nào đó, Cây FS được tối ưu hóa chống lại việc 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 dưới 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 đã biết 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 để tìm kiếm thông qua. Bạn phải luôn đi xuống qua cây thư mục và điều đó tạo ra rất nhiều tra cứu khác biệt.
Phoshi

71

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

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

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

FYI: Khi tìm kiếm các vị trí được lập chỉ mục, tìm kiếm windows có thể chỉ là đáp ứng.


5
Hoặc: Quét sách giáo khoa so với tìm kiếm mục lục (chi tiết)
bobobobo

36

Hoạt động kinh doanh của Google là tìm kiếm (và phục vụ Quảng cáo) và nó rất tập trung vào đó. Có một số điều mà Google làm để đảm bảo dữ liệu được trả về cho bạn rất nhanh:

  • Đầu tiên, nó sử dụng MapReducePageRank để tạo ra một chỉ mục toàn diện của World Wide Web. Nó cập nhật điều này thường xuyên để kết quả được 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 phân chia trên nhiều máy chủ để xây dựng kết quả trả về. Điều này cho phép quá trình được song song hóa cao.
  • Các truy vấn và kết quả phổ biến được lưu trữ, 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

Một cách tương đối là một tìm kiếm ổ cứng không có chỉ mục phải đọc qua mọi tệp 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ả một hệ thống tập tin và một chỉ mục như một cây. Trong hệ thống tệp, 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 nhánh có thể có các nhánh con 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à các nhánh phụ) để tìm chiếc lá bạn đang tìm kiếm. Một chỉ số lật thứ bậc này xung quanh. Cơ sở trở thành bảng chữ cái và tất cả các nhánh phụ tinh chỉnh thêm về điều này. Những chiếc lá là vị trí của mặt hàng 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).


30

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 loay hoay thực hiện nghiên cứu của mình, cuối cùng tôi cũng đọc được rằng bên cạnh thực tế là họ thuê những người giỏi nhất trong số những người giỏi nhất để đưa ra một số thuật toán tìm kiếm tinh vi nhất và tất cả những điều đó.

Tôi nghĩ rằng một trong những thiết kế quan trọng tương tự như ý tưởng về bản đồ thu nhỏ. Bạn có rất nhiều máy tính giá rẻ trong các trang trại. Để các máy tính này chỉ có khoảng 80 GB dung lượng ổ cứng và đẩy mạnh để có khoảng 16 GB RAM hoặc thậm chí 32 GB RAM tốt hơn trên các 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 tinh vi mà chúng thiết kế. Nhưng ý tưởng chính ở đây là khi một truy vấn được gửi, nó sẽ đượ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 trên đĩa cứng. Nhưng đừng quên rằng họ có một hệ thống tinh vi (lập chỉ mục và tất cả các thuật toán) đó cũng giúp ích rất nhiều.

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

Ý tưởng nhỏ này kết hợp với lập chỉ mục của họ và tất cả những điều 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 ổ cứng.

  • Sức mạnh để dự đoán dựa trên các tìm kiếm khác.
  • Dữ liệu rất có thể trong RAM mà tất cả 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 chính 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ạnh phúc với những gì tôi học được.


7
Bạn đóng đinh nó vào một số thứ mà các áp phích khác, phổ biến hơn đã bỏ lỡ. 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 riêng của nó. Hơn nữa, khi bạn tìm kiếm trên Google.com, tìm kiếm thực tế không xảy ra trong thời gian thực, chỉ là một bản sao 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ó cực kỳ phức tạp để mô tả quá trình sản xuất / tổ chức, nhưng nó có thể được gọi một cách mơ hồ là "lập chỉ mục" như ai đó đã nói.
Joseph Myers

Đó là cực kỳ phức tạp để mô tả sản xuất quá trình / tổ chức ... . Đúng, đó là những gì tôi gọi là phần tinh vi của nó. Thumbs up, bạn tóm tắt nó tốt.
Chạm vào

1
@JosephMyer google lập chỉ mục liên tục. Thực hiện tìm kiếm trên một câu hỏi được hỏi trên SuperUser trước đó trong ngày (ví dụ: google.com/search?q=google+faster+than+a+hard+drive ) và nó hiển thị 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 đã phải đề cập đến nó bởi vì nó là nền tảng của những gì tôi học được. Và phần về lập chỉ mục liên tục, phần lập chỉ mục là loại phần tổ chức. Do đó, tuyên bố cho rằng bạn tìm kiếm những gì đã được tổ chức và không phải là những gì đang được lập chỉ mục tại thời điểm này. Về 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 đó, tốt nhất là bạn nên lập chỉ mục cho nó thường xuyên hơn. Đó là lý do tại sao nó xuất hiện. Nếu không phải như 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à những gì ông JosephMyer đang nói.
Chạm vào

20

Google sử dụng một hệ thống lập chỉ mục cực kỳ tinh vi, 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. thực sự có rất ít sự tương đồng 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ọ.


4

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à kể từ đó, họ đã cải thiện hàng trăm lần.

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


2

Tôi nghĩ rằng tôi sẽ thêm vào điều này vì 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 này 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 ấy đi sâu hơn một chút nhưng không đủ sâu để bạn bị lạc trong kỹ thuật.

Chúc mừng.


1

Chỉ cần thêm một cái gì đó vào 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 những tìm kiếm này nằm trong một bộ nhớ. Vì vậy, nếu bạn tìm kiếm một cái gì đó được tìm kiếm nhiều, kết quả sẽ hiển thị gần như ngay lập tức.


0

Để trả lời câu hỏi ở mức độ đơn giản: hãy tưởng tượng bạn có một cuốn 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 (ít nhất là ngây thơ) giống như đi qua cuốn sách, từng trang, quét từng dòng để tìm sự xuất hiện của từ khóa của bạn.

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

Trong thực tế, nó phức tạp hơn thế này rất nhiều. Ví dụ: bạn thường tìm kiếm đĩa cứng của mình để tìm các loại thông tin khác 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ó đã đ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ó đã sắp xếp danh sách theo cách mà nó có thể tra cứu mọi thứ trong đó rất nhanh .

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ự abc, và thứ hai nó có thể có tiêu đề thư. Khi bạn tìm một từ trong chỉ mục, bạn có thể thấy ngay 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, bạn có thể dễ dàng tìm thấy 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, có thể sử dụng phần mềm để lập chỉ mục cho đĩa cứng của bạn và sau đó bạn có thể sử dụng chỉ mục thay vì toàn bộ.


-1

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

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.