(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.
Giao diện
của Dogpile |
|
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.
Minh họa một meta search engine (hình lấy từ [4]) |
|
Đ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.
Minh họa hoạt động của MTKLH dùng Yahoo BOSS
(hình lấy từ Yahoo) |
|
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. Thông tin và mã nguồn có thể xem
ở đây
Giao diện của Clusty |
|
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) |