11 Máy tìm kiếm liên hợp

(Post 14/07/2009) Số lượng máy tìm kiếm có thể cạnh tranh với Google chỉ có thể đếm trên đầu ngón tay. Khi không thể cạnh tranh theo kiểu “trực diện”, meta search engine – tạm dịch là máy tìm kiếm liên hợp – là một giải pháp mà nhiều người muốn nhắm đến.

Một máy tìm kiếm (search engine) [1] thường có 3 thành phần chính: thứ nhất là web crawling, thành phần chuyên thu thập các trang web có trên Internet; thứ hai là indexing, thành phần rút trích các đặc trưng của các trang web (ví dụ tiêu đề, từ khóa tiêu biểu) và lưu trữ vào cơ sở dữ liệu để phục vụ cho nhu cầu tìm kiếm sau này; và thứ ba là searching, thành phần tìm các trang web phù hợp/liên quan đến nhu cầu của người dùng (thông qua việc gõ vào các từ khóa trong ô tìm kiếm).

Có thể thấy, thành phần đầu tiên là một trong các thành phần quan trọng nhất của một máy tìm kiếm. Bởi vì, nếu một trang không được thu thập thì nó sẽ không bao giờ được liệt kê trong kết quả tìm kiếm. Ngoài ra, ngay cả khi một trang được thu thập, nó cần phải được thu thập nhanh nhất, ngay khi mới được cập nhật. Ví dụ, giả sử bạn muốn tìm các tin tức cập nhật và các bài bình luận Euro mới nhất thông qua máy tìm kiếm XYZ, thì công cụ thu thập tin của máy tìm kiếm XYZ phải có khả năng cập nhật ngay các thông tin vừa xuất hiện trên Internet. Một vấn đề khác đó là phương pháp lưu trữ bởi vì lưu trữ thông tin của cả trăm tỉ trang web (Google mới thông báo họ đã xử lí đến 1.000 tỉ trang web vào tháng 7/2008) sao cho an toàn và đáp ứng nhanh nhất cho nhu cầu tìm kiếm là việc không đơn giản. Một trong những lí do mà Google thống trị thị trường tìm kiếm hiện nay là khả năng thu thập trang web cực nhanh, đồng thời có hệ thống lưu trữ phân tán cực lớn (450.000 server theo số liệu không chính thức năm 2000).

Chính vì lí do này mà trên thế giới, số lượng các máy tìm kiếm có thể cạnh trạnh với Google chỉ có thể đếm trên đầu ngón tay gồm Yahoo, Microsoft, Ask. Khi không thể cạnh tranh kiểu này, meta search engine – tạm dịch là máy tìm kiếm liên hợp (MTKLH, [2][3]) – là một giải pháp khác mà nhiều người muốn nhắm tới.

GIỚI THIỆU VỀ META SEARCH ENGINE

Thế nào là meta search engine

Một MTKLH không tự xây dựng bất cứ thành phần nào trong ba thành phần kể trên của một máy tìm kiếm thông thường. Thay vào đó, với mỗi câu truy vấn của người dùng, MTKLH sẽ chuyển nó đến các máy tìm kiếm khác (tạm gọi là máy tìm kiếm nguồn) như Google, Yahoo và sau đó xử lí kết quả trả về từ các máy tìm kiếm này trước khi đưa ra kết quả cho người dùng.

Điểm mạnh

MTKLH không phải tốn tài nguyên cho việc thu thập và lưu trữ các trang web (theo Yahoo, con số này có thể lên đến hàng trăm triệu đô la). Thay vào đó meta search engine chủ yếu tập trung vào phát triển các thuật toán xử lí kết quả từ các máy tìm kiếm khác. Các thuật toán xử lí thông thường gồm có gom cụm (clustering) để loại bỏ trùng lắp, và phân tích ngữ nghĩa để có thể cho kết quả gần với yêu cầu của người dùng nhất.

Số lượng các trang web trên Internet rất lớn, một máy tìm kiếm không thể thu thập và xử lí toàn bộ. Do đó, việc sử dụng kết quả tìm kiếm từ nhiều nguồn dữ liệu của các máy tìm kiếm khác nhau, MTKLH giúp tăng cơ hội cho người dùng tìm được thông tin họ cần, đặc biệt là các thông tin chuyên biệt.

Điểm yếu

– Thứ nhất, tốc độ của các MTKLH thường chậm vì phải chờ kết quả trả về từ các máy tìm kiếm khác. Nếu một MTKLH gửi câu truy vấn đến càng nhiều máy tìm kiếm, tốc độ càng chậm.

– Thứ hai, khả năng tìm kiếm nâng cao như các máy tìm kiếm thông thường khác bị hạn chế. Các toán tử tìm kiếm AND, OR và tìm kiếm theo cụm từ có thể không được hỗ trợ. Hơn nữa, việc diễn dịch câu truy vấn nguyên thủy của người dùng cho phù hợp với cú pháp qui định của các máy tìm kiếm khác nhau có thể làm mất đi tính chính xác ban đầu.

– Thứ ba, kết quả trả về của MTKLH chưa chắc tốt hơn kết quả của một máy tìm kiếm (ví dụ Google). Có hai lí do: thứ nhất là các máy tìm kiếm lớn đều đã có thuật toán rất phức tạp và hiệu quả để tối ưu hóa kết quả tìm kiếm; thứ hai MTKLH chỉ được biết một phần dữ liệu của các máy tìm kiếm nó truy vấn tới thông qua kết quả trả về mà thôi. Thông tin ít hơn sẽ làm cho các máy tìm kiếm khó địch lại các máy tìm kiếm nguyên thủy. Nếu máy tìm kiếm X cho kết quả trả về quá tốt, hơn hẳn Y và Z, kết hợp 3 thứ này có thể sẽ ra một thứ tệ hơn kết quả của X. Đây cũng chính là lí do mà nhiều người không thích dùng MTKLH cho các nhu cầu tìm kiếm thông thường. Tuy nhiên, kết hợp các kết quả của các máy tìm kiếm khác không quá tốt (ví dụ blog, diễn đàn và sách trực tuyến) lại có thể giúp cho kết quả tốt hơn.

– Thứ tư, việc gửi câu truy vấn đến các máy tìm kiếm khác phải chịu hai sự hạn chế: thứ nhất là kết quả trả về cho mỗi lần truy vấn ít (ví dụ Google chỉ cho phép tối đa 32 kết quả), thứ hai là số lượng câu truy vấn gửi đi trong ngày bị giới hạn (ví dụ Google SOAP API trước đây chỉ cho phép tối đa 1.000 câu truy vấn/ngày). Những hạn chế này được đặt ra để đảm bảo rằng MTKLH không thể nào vượt qua được các máy tìm kiếm mà nó dựa vào.

CÁC BƯỚC CHÍNH XÂY DỰNG MỘT MTKLH

Chọn các máy tìm kiếm nguồn

Các máy tìm kiếm nguồn là các máy mà MTKLH sẽ gửi các câu truy vấn của người dùng đến đó và sau đó xử lí kết quả trả về từ các máy tìm kiếm này. Các máy tìm kiếm nguồn mạnh như Google, Yahoo và Microsoft thường là một trong những lựa chọn đầu tiên khi xây dựng một MTKLH. Tuy nhiên, như đã nói ở trên, với các máy tìm kiếm rất mạnh như vậy, nếu không có thuật toán xử lí kết quả hiệu quả sẽ rất khó thuyết phục người dùng sử dụng MTKLH thay cho các máy tìm kiếm nguồn trên. Một giải pháp khác là chọn các lĩnh vực chuyên biệt như sức khỏe (ví dụ Mamma Health Search Engine – http://www.mammamediasolutions.com/search/meta/healthsearch.html). Ngoài ra, để đảm bảo MTKLH có thể cung cấp kết quả toàn diện hơn việc chỉ dùng một máy tìm kiếm, nên chọn các máy tìm kiếm nguồn sao cho kết quả trả về từ chúng càng đa dạng càng tốt.

Các máy tìm kiếm thông dụng hiện nay như Google, Yahoo và Microsoft đều cung cấp các API (chuẩn lập trình giao tiếp ứng dụng) để người dùng có thể gửi câu truy vấn và nhận kết quả về dưới dạng các đối tượng đã được đóng gói sẵn giúp cho việc truy xuất các thành phần dữ liệu thuận tiện hơn. Các API thông dụng gồm có Google Ajax API của Google, Yahoo Search BOSS (Build Your Own Search Service) của Yahoo và Live Search SOAP API của Microsoft.

Xử lí kết quả trả về từ các máy tìm kiếm nguồn

Khi người dùng tìm đến máy tìm kiếm, họ cần tìm thông tin phù hợp cho nhu cầu của mình một cách nhanh nhất. Việc chỉ dùng một máy tìm kiếm có thể cho kết quả không đầy đủ (vì phần còn lại có thể nằm ở máy tìm kiếm khác), hoặc kết quả phù hợp không nằm ở trên cùng (ví dụ, một vài trang đầu tiên).

Phát triển các thuật toán sáng tạo và hiệu quả để xử lí các kết quả trả về từ các máy tìm kiếm nguồn là điểm nhấn tạo nên sự khác biệt của các MTKLH. Phạm vi của các thuật toán này có thể liệt kê:

– Tiền xử lí: Các kết quả trả về từ các máy tìm kiếm nguồn có thể sẽ trộn lẫn giữa các link được trả tiền (để được xếp hạng cao) và các link không trả tiền, đồng thời có thể có rất nhiều kết quả trùng lắp. Loại bỏ trùng lắp và phân loại các link là các thao tác tiền xử lí cơ bản của MTKLH.

– Kết hợp và chỉnh thứ tự xếp hạng: MTKLH cần phải có các thuật toán hiệu quả để có thể hiểu được đâu là kết quả phù hợp nhất với người dùng trong tập hợp kết quả tìm kiếm từ nhiều nguồn khác nhau, từ đó trả về kết quả theo thứ tự xếp hạng mới. Một ví dụ, nếu bạn đặt mục tiêu là tìm kiếm quán ăn ở Tp. HCM, có thể khi người dùng gõ “bún bò” vào, Google sẽ không hiểu được họ hỏi về cái gì, cách chế biến bún bò hay quán bún bò. Nếu bạn biết chắc người dùng vào MTKLH của bạn để tìm quán ăn hơn là cách chế biến, bạn có thể làm tốt hơn Google.

– Hỗ trợ tinh chỉnh truy vấn: Để có thể tìm ra kết quả phù hợp nhanh nhất, người dùng phải biết chính xác các từ khóa liên quan đến nhu cầu tìm kiếm của mình được máy tìm kiếm hỗ trợ. Nếu chưa biết rõ từ khóa, thì việc đưa ra các hỗ trợ từ các từ khóa ban đầu sẽ rất hữu ích. Lấy ví dụ, khi bạn muốn tìm kiếm với từ khóa “tủ lạnh”, các máy tìm kiếm có thể hỗ trợ bạn bằng cách đưa thêm các tinh chỉnh như: “đồ điện lạnh gia dụng” hoặc “sản xuất tại Nhật”…

Máy tìm kiếm tùy chỉnh Google (Google CSE – Custom Search Engine)

Google vừa cung cấp một công cụ với tên gọi Google CSE, cho phép người dùng tự tay xây dựng một máy tìm kiếm cho chính mình dựa trên công nghệ tìm kiếm của Google. Nói một cách đơn giản, với mỗi câu truy vấn, bạn sẽ nhận được kết quả trả về từ Google để xử lí. Với những gì Google CSE cung cấp, bạn có thể xây dựng cho mình một meta search engine chỉ trong vài phút. Bạn có thể giới hạn lại những site nào bạn quan tâm trong meta search engine của bạn (Google CSE cho phép bạn chỉ định tối đa 5.000 sites). Hạn chế khi dùng Google CSE là bạn chỉ có thể có được tối đa 32 kết quả trả về cho một câu truy vấn, đồng thời phải giữ nguyên kết quả trả về (kể cả quảng cáo) từ phía Google mà không được gộp chung với các kết quả của các máy tìm kiếm khác. Google rất khôn ngoan khi đưa ra giải pháp này. Bản chất là Google đã “tận dụng” công sức của bạn trong việc tinh chỉnh kết quả tìm kiếm cho phù hợp với người dùng, từ đó thu hút người dùng và quảng cáo một cách gián tiếp cho Google.

Helios – MTKLH mã nguồn mở

Helios là MTKLH mã nguồn mở được các nhà khoa học Ý và Mỹ phát triển. Helios hỗ trợ hầu hết các công đoạn xử lí của một MTKLH như thu thập, phân tích, xử lí và trình bày kết quả. Số lượng các máy tìm kiếm nguồn mà Helios hỗ trợ lên đến 16 và khá đa dạng từ tìm kiếm thông thường trên web như Google, Yahoo, đến tìm kiếm tin tức, sách và tài liệu khoa học.

MỘT SỐ MTKLH THÔNG DỤNG

Dogpile

Dogpile là sản phẩm của InfoSpace. Đặc điểm của Dogpile là khả năng phân loại rất tốt các link trả tiền và không trả tiền, đồng thời công nghệ IntelliFind rất hiệu quả trong việc xử lí các kết quả trả về để cho kết quả phù hợp với người dùng [5][6][7].

Clusty

Clusty là sản phẩm của Vivisimo. Đặc điểm nổi bật của Clusty và các sản phẩm khác của Vivisimo là thuật toán gom cụm các kết quả tìm kiếm. Với các nhóm được gom lại, người dùng có thể có được cái nhìn rộng hơn về các chủ đề mà họ đang tìm kiếm.

KartOO

Đặc điểm nổi bật của KartOO so với các MTKLH khác là khả năng cung cấp kết quả dưới dạng giao diện hình ảnh trực quan.

Các MTKLH khác

Có thể kể ra ở đây bao gồm [5]: SurfWax, Mamma, Jux2, IxQuick, qbSearch, Excite, Search.com.

TƯƠNG LAI NÀO CHO MTKLH

Nếu bạn có hứng thú với việc xây dựng các MTKLH, các câu hỏi sau cần được đặt ra và phân tích một cách nghiêm túc:

– Một là, bạn chọn các máy tìm kiếm nào để gửi câu truy vấn đi. Chọn nhiều máy tìm kiếm có thể sẽ làm cho thời gian trả kết quả về chậm. Chọn máy tìm kiếm không phải Google có thể sẽ cho kết quả tệ hơn và người dùng sẽ chuyển sang dùng Google cho tiện.

– Hai là, lĩnh vực chuyên biệt mà bạn nhắm đến. Cho đến nay tìm kiếm tổng quát trên web vẫn là thông dụng nhất, hơn cả tìm kiếm ở blog, diễn đàn, nhạc. Nếu bạn muốn kiếm tiền từ máy tìm kiếm của mình, tìm kiếm tổng quát trên web sẽ có cơ hội hơn vì lượng người dùng nhiều hơn.

Google hiện nay đang thống trị thị trường tìm kiếm web do chất lượng tìm kiếm hầu như hơn hẳn các máy tìm kiếm khác. Dùng Google CSE như là công nghệ nền có thể là một lựa chọn tốt vì nếu người dùng nhấn vào quảng cáo trên trang kết quả trả về từ MTKLH của bạn, bạn vẫn có thể kiếm tiền được từ Google. Nhưng lúc đó phải kiểm tra xem đối tượng mà MTKLH của bạn là gì và MTKLH của bạn có cách nào để cho kết quả tốt hơn kết quả của Google cho cùng một câu truy vấn.

– Ba là, đâu là vũ khí chính của bạn? Bạn cần phải có thuật toán hiệu quả để xử lí và cho kết quả tốt hơn kết quả trả về từ các máy tìm kiếm nguồn mà bạn dựa vào. Thành công của các MTKLH nổi tiếng hiện nay đều đến từ các thuật toán này. Đối với người Việt, các thuật toán thể hiện tốt nhất ngữ nghĩa tiếng Việt; văn hóa, hành vi và thói quen tìm kiếm của người Việt, sẽ là vũ khí chính.

Tham khảo:

Lê Đình Duy
(theo PC World VN)

FPT Aptech – Hệ Thống Đào Tạo Lập Trình Viên Quốc Tế

FPT Aptech trực thuộc Tổ chức Giáo dục FPT có hơn 25 năm kinh nghiệm đào tạo lập trình viên quốc tế tại Việt Nam, và luôn là sự lựa chọn ưu tiên của các sinh viên và nhà tuyển dụng.
0981578920
icons8-exercise-96