Điện toán đám mây, MapReduce và ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng

21 784 1
Điện toán đám mây, MapReduce và ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Điện toán đám mây, MapReduce và ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng

VIỆN CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG BỘ MÔN CÔNG NGHỆ PHẦN MỀM BÁO CÁO THỰC TẬP TỐT NGHIỆP Đề tài: Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng Giảng viên hướng dẫn: PGS.TS Huỳnh Quyết Thắng ThS Lê Quốc Bộ môn Công nghệ phần mềm Viện CNTT & TT Đại học Bách Khoa Hà Nội Sinh viên thực hiện: Nguyễn Văn Đông Anh 20060102  Hà Nội, 02/2011  Mục Lục Bộ máy tìm kiếm a b Solr a b c Solr Tại chọn Solr Quá trình thực i File mục ii Quá trình đánh mục iii Quá trình tìm kiếm 11 Solr dự án BKProfile 13 a b c Quy trình tìm kiếm Tiêu chí cho máy tìm kiếm BKProfile 13 Thiết kế cấu trúc ghi mục 14 Nâng cao chất lượng tìm kiếm 17 i Đánh trọng số 17 ii Gom nhóm cụm từ hay xuất 17 Demo 19 Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng Bộ máy tìm kiếm a Quy trình tìm kiếm Quy trình tìm kiếm bao gồm có bốn bước: • Truy vấn tìm kiếm thực người sử dụng cách yêu cầu máy tìm kiếm thực tìm kiếm từ khóa • Bộ máy tìm kiếm thực xử lý truy vấn • Máy tìm kiếm tìm từ khóa mục có sẵn • Máy tìm kiếm thực đánh điểm, xếp theo độ phù hợp với yêu cầu tìm kiếm trả kết cho người dùng b Tiêu chí cho máy tìm kiếm Có nhiều tiêu chí cần đặt cho máy tìm kiếm • Kết phải xác: • Sắp xếp theo thứ tự phù hợp: Càng phù hợp với yêu cầu tìm kiếm người sử dụng đưa lên • Tốc độ nhanh • Dễ dàng tùy chỉnh: Đối với người phát triển, máy tìm kiếm coi tốt dễ dàng thêm bớt, cấu hình thuộc tính bên nhân tìm kiếm Ngồi ra, máy tìm kiếm cịn cho phép người phát triển dễ dàng theo dõi trình tìm kiếm, theo dõi trình thực xử lý câu truy vấn người dùng để từ có bước tùy chỉnh phù hợp để nâng cao độ phù hợp kết trả • Phân tán: Với khối lượng thông tin khổng lồ tăng nhanh ngày yêu cầu phân tán yêu cầu cần thiết máy tìm kiếm • Một vài chức khác: o Có chức đánh dấu cho kết trả o Tìm kiếm theo cụm: Người dùng lọc dần tiêu chí theo cụm từ lớn đến nhỏ dần để đưa kết phù hợp o Từ đồng nghĩa: Máy tìm kiếm cho phép tìm từ có nghĩa với từ khóa người dùng nhập vào o Từ gốc: Máy tìm kiếm cho phép tìm từ từ gốc từ từ khóa người dùng o Kiểm tra tả: Máy tìm kiếm cho phép kiểm tra tả người dùng từ đó, gợi ý cho người dùng tìm kiếm theo từ khóa tả o Stopwords: Trong ngơn ngữ, có nhiều từ khơng mang nhiều ý nghĩa (ví dụ từ cảm thán tiếng Việt tiếng Anh có từ a, the, not, but…) Solr a Solr Solr máy chủ tìm kiếm văn có tốc độ thực thi nhanh Solr sử dụng nhân tìm kiếm Lucene, thư viện tìm kiếm gồm có chức sau: Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo u cầu người dùng • Đánh mục ngược • Phân tích văn • Thuật tốn đánh điểm tốt Solr phát triển hồn toàn Java thực thi container Tomcat Jetty Solr có giao tiếp API dựa tảng XML Json khiến cho việc thực tương tác với nhiều ngôn ngữ khác trở nên dễ dàng Solr cho phép người dùng thực việc cấu hình bên ngồi hệ thống thơng qua việc chỉnh sửa file cấu hình (xml) Các thành phần khác mà Solr cung cấp: • Từ đồng nghĩa • Đánh dấu kết trả • Phân tán • Kết hợp trực tiếp với sở liệu (MySql, MSSQL) để lấy liệu Trong Solr tồn hai q trình: • Q trình đánh mục: Để xây dựng liệu cho máy chủ tìm kiếm • Quá trình truy vấn: Để thực tìm kiếm liệu máy chủ tìm kiếm b Tại chọn Solr Hiện có nhiều loại máy chủ tìm kiếm khác nhau, nhiên sau trình tìm hiểu nghiên cứu, dựa tiêu chí đánh giá thời gian thực q trìnhđánh ch ỉ mục, thời gian thực câu truy vấn, số lượng câu truy vấn thực đơn vị thời gian, số lượng không gian đĩa c ứng mà liệu đánh mục chiếm dụng, Solr xứng đáng ứng cử viên xuất sắc cho máy tìm kiếm Nguyễn Văn Đơng Anh - CNPM K51 - Hanoi University of Technology Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng c Quá trình thực Quá trình thực Solr giống trình thực máy tìm kiếm • Xây dựng liệu mục thông qua trình đánh mục • Thực u cầu truy vấn tìm kiếm người dùng liệu mục trả kết tìm kiếm tương ứng cho người dùng Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng i File mục Mỗi ghi Solr gọi doc, doc có nhiều trường, trường có kiểu khác (int, string…) File mục bao gồm thơng tin sau: • Tên trường: Tập tên trường chứa tồn tất trường có tất ghi mục Solr • Giá trị trường: Đây giá trị trả người dùng thực truy vấn liệu • Từ điển terms: Chứa tồn term liệu mục, kèm với số lượng ghi (doc) có chứa term trỏ tới tần suất xuất term liệu vị trí o Dữ liệu tần suất xuất hiện: Với term từ điển, chứa thơng tin số lượng ghi có chứa term tần suất xuất term ghi o Dữ liệu vị trí: Đối với term từ điển, chứa thông tin vị trí term xuất ghi • Hệ số chuẩn hóa: Hệ số có tác dụng trường ghi, nhằm xác định hệ số nhân kết trả trường ghi Hệ số cho phép xác định trường có trọng số cao trường • Term vector: Đối với trường, thông tin term trường chứa vector Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng Các ghi bị xóa: Chứa thơng tin đánh dấu ghi mục bị xóa Sau thực tối ưu hóa, thực xóa hẳn file mục Đánh mục ngược: Bộ liệu mục chứa thông tin thống kê term để việc tìm kiếm liệu term thực hiệu Chỉ mục ngược có ngh đ ối với ĩa term, file mục lưu ghi có chứa term thay ìv ngược lại Bản ghi (document): Vì Solr sử dụng sở liệu ghi (document database), vậy, khơng tồn quan hệ ghi với Toàn thông tin tương ứng thực thể lưu toàn ghi, ghi lưu lại mục Bản ghi bao gồm nhiều trường Trường (field): Trong ghi, có trường tương ứng để chứa liệu Ví dụ thơng tin người gồm có họ, tên, tuổi, quê quán… Mỗi trường thuộc kiểu liệu xác định, nguyên thủy (int, string…) người phát triển tự định nghĩa Ngoài ra, cịn có số trường đặc biệt như: • CopyField: Là trường mà lấy thông tin từ trường (source) ghi vào trường khác (destination) • DynamicField: Là trường cho phép người dùng ghi rõ tên tr ờng mà cần sử dụng ký tự đại diện (như *) • UniqueKey: Chỉ định rõ tr ờng đại diện cho ghi • DefaultSearchField: Trường trường mặc định để thực việc tìm kiếm liệu • DefautlOperator: Toán hạng mặc định để thực nối ghép từ khóa u cầu tìm kiếm người dùng File định kiểu ghi (schema): Các ghi phải có cấu trúc xác định trước, bao gồm trường nào, kiểu liệu nào… Thông tin trường, kiểu liệu trường nhiều thông tin cấu thành nên ghi lưu file cấu hình (schema) File có dạng xml, đưa vào hệ thống lúc khởi động máy chủ • Nguyễn Văn Đơng Anh - CNPM K51 - Hanoi University of Technology Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng ii Quá trình đánh mục Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng Analizer: Là thành phần xét trường ghi câu truy vấn người dùng để tạo thành loạt token (các từ khóa) Tokenizer: Là thành phần sử dụng để tạo term từ câu truy vấn người dùng liệu trường dựa vào tiêu chí định sẵn file cấu hình Ví dụ: WhiteSpaceTokenizer tách câu truy vấn người dùng thành từ khóa dựa vào khoảng trắng StandardTokenizer tách câu truy vấn người dùng dựa vào khoảng trắng dấu chấm câu LowerCaseTokenizer tách câu truy vấn người dùng thành từ khóa dựa vào chữ khơng phải ký tự sau chuyển hết từ khóa dạng chữ viết thường Filter: Là thành phần sử dụng để phân tích từ khóa giữ chúng, chuyển chúng thành phần khác, bỏ chúng, tạo thêm từ khóa khác Các tiêu chí định người phát triển file cấu hình Một vài ví dụ cho filter SynonymFilter thêm từ khóa đồng nghĩa với từ khóa câu truy vấn người dùng trường áp dụng Filter; StopwordFilter loại bỏ hết tất từ khóa khơng mang giá trị (được định nghĩa file văn bản) Quá trình đánh mục thực sau: Sau lấy thông tin cần đánh mục đưa vào trường ghi, thành phần Tokenizer Filter người phát triển định file cấu hình thực tách thơng tin trường thành từ khóa cụ thể Các Analyzer bổ sung, xóa bớt giữ nguyên từ khóa phụ thuộc vào cách cấu hình người phát triển Sau đó, từ khóa sinh lưu lại mục chuyên biệt để tìm kiếm Các giá trị nguyên ứng với trường lưu lại khơng lưu lại (tùy cách cấu hình tr ờng file cấu hình ghi (schema) người phát triển); lưu lại, máy tìm kiếm tìm thơng tin (hit), trả lại giá trị này, cịn khơng khơng trả lại giá trị Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng 10 Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng iii Quá trình tìm kiếm QueryParser: Là xử lý truy vấn người dùng.Với xử lý có cách xử lý truy vấn riêng ìm ki ểm đâu, t trường nào, có đánh trọng số lên trường lúc tìm kiếm hay không… Khi người dùng thực câu lệnh truy vấn, câu lệng truy vấn xử lý request handler (bộ xử lý yêu cầu tìm kiếm, update, xóa…) Các request handler xác định logic Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology 11 Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng cần thực yêu cầu Câu lệnh truy vấn xử lý QueryParser, phận chịu trách nhiệm cho câu truy vấn tìm kiếm người dùng tách khỏi tham số câu lệnh truy vấn Có nhiều loại QueryParser Solr, ví dụ Standard Query Parser cho phép người dùng xác định rõ câu truy vấn tìm kiếm; Dismax Query Parser cho phép người dùng thực câu lệnh tìm kiếm đơn giản nhiều trường khác Sau đó, truy vấn tìm kiếm Analyzer định người phát triển tách thành từ khóa khác Sau đó, máy tìm kiếm tìm kiếm từ khóa với trọng số từ khóa (nếu có) liệu mục hệ thống Giá trị trả xử lý tiếp dựa vào tham số truyền vào câu lệnh truy vấn người dùng ghi nào, kết thúc đến ghi nào, trả theo định dạng gì… Ngồi ra, thành phần định yêu cầu truy vấn xử lý 12 Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng thêm phần thành phần HightLighting đánh dấu từ khóa câu lệnh truy vấn người dùng phù hợp với từ ghi liệu mục máy tìm kiếm Các kiểu tìm kiếm hỗ trợ Solr: • Normal Query: Chỉ có từ khóa câu lệnh truy vấn người dùng • Wildcard Query: Có thêm ký tự wildcard câu lệnh truy vấn ? thay cho ký tự; * thay cho không nhiều ký tự • Range Searches: Cho phép tìm kiếm khoảng định Ví dụ tìm kiếm theo ngày từ ngày 01-01-2002 đến ngày 01-01-2003 có câu lệnh tìm kiếm sau: date_search: [20020101 TO 20030101] • Boosting: Là trọng số số từ khóa câu truy vấn tìm kiếm người dùng Ví dụ: name: dong^2 anh dong có trọng số kết trả đưa lên đầu tên có dong trước tên có anh • QueryField: Xác định xem trường định thực việc truy vấn Ví dụ: Tìm kiếm tên: name:dong anh tìm kiếm trường tên giá trị dong anh • Boolean Operator: Là toán hạng sử dụng để kết nối giá trị từ khóa người dùng.Ví dụ: name: dong AND anh tìm trường tên có giá trị dong anh • Datetime Query: Thực tìm kiếm trường có kiểu datetime Ví dụ: event_date: [* TO NOW-2YEAR] tìm kiếm ghi có giá trị event_date từ năm đến cách năm Các tham số • Start: Bắt đầu từ ghi • Rows: Số lượng ghi cần trả • DebugQuery: Trả thêm giá trị tính tốn điểm thành phần khác máy tìm kiếm để người phát triển phân tích đánh giá kết trả • Response Writer: Kiểu định dạng trả cho người dùng, thuộc dạng XML JSON Solr dự án BKProfile a BKProfile BKProfile máy tìm kiếm, chuyên thực tìm kiếm để trả thơng tin người Bộ máy tìm kiếm phục vụ mục đích tìm kiếm người cho đối tượng chính: Các sinh viên cựu sinh viên muốn tìm sinh viên nhằm phục vụ mục đích đó; Các nhà làm giáo dục thực tìm kiếm sinh viên sau trường để đánh giá thực trạng giáo dục…; Các nhà tuyển dụng tìm kiếm ứng viên có tiềm Nguyễn Văn Đơng Anh - CNPM K51 - Hanoi University of Technology 13 Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng Vì BKProfile hệ thống tìm kiếm nên có u cầu hệ thống tìm kiếm • Độ phù hợp kết cao • Tốc độ thực thi nhanh chóng • Thơng tin trả người • Có thêm tính phong phú khác để tăng thêm tính hấp dẫn cho hệ thống b Thiết kế cấu trúc ghi mục Bản ghi bao gồm có trường • *_indexed: Để lưu thơng tin trường có kết thúc _indexed • Text: copy field, giá trị trường khác chuyển thẳng vào trường Trường thực việc tìm kiếm mặc định • Profile_id: Là đại diện cho ghi Thiết kế kiểu trường • BKText kiểu liệu custom tạo riêng cho dự án BKProfile o Quá trình đánh mục  WhiteSpaceTokenizerFactory: Tách giá trị trường thành từ khóa dựa vào khoảng trắng từ khóa  ASCIIFoldingFilterFactory: Chuyển tất từ khóa dạng ASCII để tìm kiếm theo dạng tiếng việt khơng dấu  WordDelimiterFilterFactory: Tách từ ghép có chữ số thành chữ riêng số riêng  LowerCaseFilterFactory: Chuyển tất từ khóa dạng chữ thường  SynonymFilterFactory:Sử dụng từ đồng ngh đ ể ĩa cho phép q trình tìm kiếm có kết tốt  StopFilterFactory: Loại bỏ tất từ khơng mang nhiều ý ngh Các t khóa định nghĩa ĩa file riêng (stopword.txt) Hầu hết từ từ cảm thán  ShingleFilterFactory: Ghép nối từ khóa thành cụm từ (tối đa 5) để tăng độ xác lúc tìm kiếm 14 Nguyễn Văn Đơng Anh - CNPM K51 - Hanoi University of Technology Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng   SnowballPorterFilterFactory: Để loại bỏ từ bắt nguồn từ từ khác RemoveDuplicatesTokenFilterFactory: Loại bỏ tất từ khóa trùng sau tạo tất filter Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology 15 Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng o Quá trình tìm kiếm  WhiteSpaceFilterFactory:Tách truy vấn người dùng thành từ khóa dựa vào khoảng trắng  ASCIIFoldingFilterFactory: Chuyển từ khóa thành dạng ASCII để tìm kiếm tiếng việt khơng dấu  WordDelimiterFilterFactory:Tách từ ghép có chữ số thành chữ riêng số riêng  LowerCaseFilterFactory: Chuyển tất từ khóa dạng chữ thường  SynonymFilterFactory: Sử dụng từ đồng nghĩa đ ể cho phép trình tìm kiếm có kết tốt  StopFilterFactory: Loại bỏ tất từ không mang nhiều ý ngh Các t khóa định nghĩa ĩa file riêng (stopword.txt) Hầu hết từ từ cảm thán 16 Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng    ShingleFilterFactory: Ghép nối từ khóa thành cụm từ (tối đa 5) để tăng độ xác lúc tìm kiếm SnowballPorterFilterFactory: Để loại bỏ từ bắt nguồn từ từ khác RemoveDuplicatesTokenFilterFactory: Loại bỏ tất từ khóa trùng sau tạo tất filter c Nâng cao chất lượng tìm kiếm i Đánh trọng số Đối với trường khác có trọng số khác Ví dụ thực tìm kiếm trường tên thường mang giá trị cao so với trường khác Điều c ũng v ới trường tên trường, tên lớp Vì vậy, thực thiết kế file mục, phải thực đánh trọng số cho trường để kết trả có độ phù hợp cao so với mặc định ii Gom nhóm cụm từ hay xuất Khi tìm kiếm cụm từ đó, Solr khơng thể phát đâu cụm từ mà thực tìm kiếm tồn ghi xem có xuất từ khóa hay khơng Đây điều khơng mong muốn Ví dụ tìm kiếm từ Cơng nghệ phần mềm kết có chứa công nghệ phần mềm đứng trước kết có cơng nghệ an Vì vậy, từ điển để định nghĩa đâu cụm từ hay xuất để tăng thêm điểm cho chúng kết trả để tăng thêm độ phù hợp kết tìm kiếm Nguyễn Văn Đơng Anh - CNPM K51 - Hanoi University of Technology 17 Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng 18 Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng Demo Tìm kiếm với từ khóa Huỳnh Quyết Thắng Nguyễn Văn Đơng Anh - CNPM K51 - Hanoi University of Technology 19 Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo u cầu người dùng Tìm kiếm với từ khóa: Huỳnh Quyết Thắng Đại học Bách Khoa Hà Nội công nghệ thông tin công nghệ phần mềm 20 Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng Tài liệu tham khảo [1] Apache Lucene, Solr http://lucene.apache.org/ http://lucene.apache.org/solr/ [2] Packtpub Solr 1.4 Enterprise Search Server 2009 [3] Lucidworks for Solr Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology 21 ... Technology Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng 10 Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology Điện toán đám mây, MapReduce ứng dụng xây. .. 17 Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng 18 Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology Điện toán đám mây, MapReduce ứng dụng xây. .. Technology 15 Điện toán đám mây, MapReduce ứng dụng xây dựng hệ tìm kiếm theo yêu cầu người dùng o Quá trình tìm kiếm  WhiteSpaceFilterFactory:Tách truy vấn người dùng thành từ khóa dựa vào khoảng

Ngày đăng: 08/03/2014, 01:22

Từ khóa liên quan

Mục lục

  • Bộ máy tìm kiếm

    • Quy trình tìm kiếm

    • Tiêu chí cho một bộ máy tìm kiếm

    • Solr

      • Solr là gì

      • Tại sao chọn Solr

      • Quá trình thực hiện

        • File chỉ mục

        • Quá trình đánh chỉ mục

        • Quá trình tìm kiếm

        • Solr trong dự án BKProfile

          • BKProfile là gì

          • Thiết kế cấu trúc bản ghi chỉ mục

          • Nâng cao chất lượng tìm kiếm

            • Đánh trọng số

            • Gom nhóm các cụm từ hay xuất hiện

            • Demo

Tài liệu cùng người dùng

Tài liệu liên quan