Tải bản đầy đủ (.pdf) (21 trang)

Đ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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.03 MB, 21 trang )





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 và ứ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
1. Bộ máy tìm kiếm 3
a. Quy trình tìm kiếm 3
b. Tiêu chí cho một bộ máy tìm kiếm 3
2. Solr 3
a. Solr là gì 3
b. Tại sao chọn Solr 4
c. Quá trình thực hiện 5
i. File chỉ mục 6
ii. Quá trình đánh chỉ mục 8
iii. Quá trình tìm kiếm 11
3. Solr trong dự án BKProfile 13
a. BKProfile là gì 13
b. Thiết kế cấu trúc bản ghi chỉ mục 14
c. Nâng cao chất lượng tìm kiếm 17
i. Đánh trọng số 17
ii. Gom nhóm các cụm từ hay xuất hiện 17
4. Demo 19

Đ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

Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology
3


1. 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 được thực hiện bởi người sử dụng bằng cách
yêu cầu bộ máy tìm kiếm thực hiện tìm kiếm các từ khóa nào đó.
• Bộ máy tìm kiếm sẽ thực hiện xử lý truy vấn
• Máy tìm kiếm tìm các từ khóa trong bộ chỉ mục có sẵn của nó
• Máy tìm kiếm thực hiện đánh điểm, sắp xếp theo độ phù hợp với
yêu cầu tìm kiếm và trả kết quả về cho người dùng.
b. Tiêu chí cho một bộ máy tìm kiếm
Có rất nhiều tiêu chí cần đặt ra cho một bộ máy tìm kiếm.
• Kết quả phải chính 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
của người sử dụng thì càng được đưa lên đầu tiên
• Tốc độ nhanh
• Dễ dàng tùy chỉnh: Đối với người phát triển, một bộ máy tìm kiếm
được coi là tốt nếu nó có thể dễ dàng thêm bớt, cấu hình các thuộc
tính bên trong nhân của bộ tìm kiếm. Ngoà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 quá trình tìm kiếm,
theo dõi quá trình thực hiện xử lý câu truy vấn của người dùng để
từ đó có các bước tùy chỉnh phù hợp để nâng cao độ phù hợp của
kết quả trả về
• Phân tán: Với khối lượng thông tin khổng lồ và tăng nhanh từng
ngày thì yêu cầu phân tán là một yêu cầu cần thiết đối với bộ máy
tìm kiếm.
• Một vài chức năng khác:
o Có chức năng đánh dấu cho kết quả trả về
o Tìm kiếm theo cụm: Người dùng có thể lọc dần các tiêu chí
theo cụm từ lớn đến nhỏ dần để đưa ra kết quả phù hợp
o Từ đồng nghĩa: Máy tìm kiếm cho phép tìm các từ có cùng
nghĩa với các 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 các từ là từ gốc của
các từ trong từ khóa của người dùng.
o Kiểm tra chính tả: Máy tìm kiếm cho phép kiểm tra chính
tả của người dùng và từ đó, gợi ý cho người dùng tìm kiếm
theo các từ khóa đúng chính tả
o Stopwords: Trong ngôn ngữ, có nhiều từ không mang nhiều
ý nghĩa (ví dụ các từ cảm thán trong tiếng Việt hoặc trong
tiếng Anh có các từ như a, the, not, but…)
2. Solr
a. Solr là gì
Solr là một máy chủ tìm kiếm văn bản có tốc độ thực thi rất nhanh. Solr sử
dụng nhân tìm kiếm Lucene, là một thư viện tìm kiếm gồm có các chức
năng sau:
Đ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

4
Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology

• Đánh chỉ mục ngược
• Phân tích văn bản
• Thuật toán đánh điểm tốt
Solr được phát triển hoàn toàn bằng Java và được thực thi trong một
container như Tomcat hoặc Jetty. Solr có các giao tiếp API dựa trên nền
tảng XML hoặc Json khiến cho việc thực hiện 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 hiện việc cấu
hình bên ngoài hệ thống thông qua việc chỉnh sửa trong 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 quả trả về
• Phân tán

• Kết hợp trực tiếp với các cơ sở dữ liệu (MySql, MSSQL) để lấy dữ
liệu
Trong Solr tồn tại hai quá trình:
• Quá trình đánh chỉ mục: Để xây dựng bộ dữ liệu cho máy chủ tìm
kiếm
• Quá trình truy vấn: Để thực hiện tìm kiếm trong bộ dữ liệu của
máy chủ tìm kiếm
b. Tại sao chọn Solr
Hiện nay có nhiều các loại máy chủ tìm kiếm khác nhau, tuy nhiên sau quá
trình tìm hiểu và nghiên cứu, dựa trên các tiêu chí đánh giá về thời gian
thực hiện quá trình đánh ch ỉ mục, thời gian thực hiện câu truy vấn, số
lượng câu truy vấn được thực hiện trong một đơn vị thời gian, số lượng
không gian đĩa cứng mà bộ dữ liệu đánh chỉ mục chiếm dụng, Solr xứng
đáng là ứng cử viên xuất sắc cho một bộ máy tìm kiếm



Đ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

Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology
5



c. Quá trình thực hiện
Quá trình thực hiện của Solr cũng giống quá trình thực hiện trong một bộ
máy tìm kiếm.
• Xây dựng bộ dữ liệu chỉ mục thông qua quá trình đánh chỉ mục
• Thực hiện yêu cầu truy vấn tìm kiếm của người dùng trong bộ dữ
liệu chỉ mục và trả kết quả tìm kiếm tương ứng cho người dùng.

Đ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

6
Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology


i. File chỉ mục
Mỗi một bản ghi trong Solr được gọi là một doc, trong doc này có
nhiều trường, mỗi trường có một kiểu khác nhau (int, string…)
File chỉ mục bao gồm các thông tin sau:
• Tên trường: Tập tên trường chứa toàn bộ tất cả các trường
có trong tất cả các bản ghi trong bộ chỉ mục của Solr.
• Giá trị của trường: Đây là các giá trị trả về khi người dùng
thực hiện truy vấn đối với bộ dữ liệu.
• Từ điển terms: Chứa toàn bộ term trong bộ dữ liệu chỉ mục,
đi kèm với nó là số lượng các bản ghi (doc) có chứa term
đó và con trỏ chỉ tới tần suất xuất hiện của term và dữ liệu
vị trí.
o Dữ liệu tần suất xuất hiện: Với mỗi term trong từ
điển, chứa thông tin số lượng bản ghi có chứa term
đó và tần suất xuất hiện của term đó trong mỗi bản
ghi
o Dữ liệu vị trí: Đối với mỗi term trong từ điển, chứa
thông tin vị trí của term xuất hiện trong mỗi bản ghi
• Hệ số chuẩn hóa: Hệ số này có tác dụng trên mỗi trường
của bản ghi, nhằm xác định hệ số nhân trong kết quả trả về
của mỗi trường trong bản ghi. Hệ số này cho phép xác định
được trường nào có trọng số cao hơn trường nào.
• Term vector: Đối với mỗi trường, thông tin các term của
một trường được chứa trong một vector.

Đ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

Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology
7

• Các bản ghi bị xóa: Chứa thông tin đánh dấu các bản ghi
trong chỉ mục bị xóa. Sau này khi thực hiện tối ưu hóa, sẽ
thực hiện xóa hẳn trong file chỉ mục.
Đánh chỉ mục ngược: Bộ dữ liệu chỉ mục chứa các thông tin thống
kê về term để việc tìm kiếm trên bộ dữ liệu về term này được thực
hiện một các hiệu quả. Chỉ mục ngược có nghĩa là đ ối với mỗi
term, file chỉ mục sẽ lưu các bản ghi có chứa term đó thay vì
ngược lại.
Bản ghi (document): Vì Solr sử dụng cơ sở dữ liệu bản ghi
(document database), vì vậy, không hề tồn tại quan hệ giữa các bản
ghi với nhau. Toàn bộ các thông tin tương ứng đối với một thực
thể được lưu toàn bộ trong một bản ghi, và bản ghi này được lưu
lại trong chỉ mục. Bản ghi bao gồm nhiều trường.
Trường (field): Trong mỗi một bản ghi, có các trường tương ứng
để chứa dữ liệu. Ví dụ thông tin về con người gồm có họ, tên, tuổi,
quê quán… Mỗi một trường thuộc một kiểu dữ liệu xác định, có
thể là nguyên thủy (int, string…) hoặc do người phát triển tự định
nghĩa. Ngoài ra, còn có một số trường đặc biệt như:
• CopyField: Là trường mà sẽ lấy thông tin từ một trường
(source) và ghi vào một trường khác (destination)
• DynamicField: Là trường cho phép người dùng không phải
ghi rõ tên trư ờng mà chỉ cần sử dụng các ký tự đại diện
(như *).
• UniqueKey: Chỉ định rõ trư ờng nào đại diện cho một bản
ghi

• DefaultSearchField: Trường nào là trường mặc định để
thực hiện việc tìm kiếm trên bộ dữ liệu
• DefautlOperator: Toán hạng mặc định để thực hiện nối
ghép các từ khóa trong yêu cầu tìm kiếm của người dùng.
File định kiểu bản ghi (schema): Các bản ghi phải có một cấu trúc
xác định trước, bao gồm các trường nào, kiểu dữ liệu như thế
nào… Thông tin các trường, kiểu dữ liệu của các trường cũng như
nhiều thông tin cấu thành nên bản ghi được lưu trong một file cấu
hình (schema). File này có dạng xml, được đưa vào hệ thống lúc
khởi động máy chủ.


Đ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

8
Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology


ii. Quá trình đánh chỉ mục



Đ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

Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology
9

Analizer: Là các thành phần xét các trường trong các bản ghi hoặc
câu truy vấn của người dùng để tạo thành một loạt các token (các
từ khóa)


Tokenizer: Là các thành phần được sử dụng để tạo các term từ câu
truy vấn của người dùng hoặc dữ liệu ở một trường nào đó dựa vào
các tiêu chí định sẵn trong file cấu hình. Ví dụ:
WhiteSpaceTokenizer sẽ tách câu truy vấn của người dùng thành
các từ khóa dựa vào khoảng trắng. StandardTokenizer sẽ tách câu
truy vấn của người dùng dựa vào khoảng trắng và các dấu chấm
câu. LowerCaseTokenizer tách câu truy vấn của người dùng thành
các từ khóa dựa vào các chữ cái không phải là ký tự và sau đó
chuyển hết từ khóa về dạng chữ viết thường.
Filter: Là các thành phần được sử dụng để phân tích các từ khóa
và hoặc giữ chúng, chuyển chúng thành các phần khác, hoặc bỏ
chúng, hoặc tạo thêm các từ khóa khác. Các tiêu chí trên được chỉ
định bởi người phát triển trong file cấu hình. Một vài ví dụ cho
filter như SynonymFilter sẽ thêm các từ khóa đồng nghĩa với các
từ khóa trong câu truy vấn của người dùng hoặc trên trường được
áp dụng Filter; StopwordFilter sẽ loại bỏ hết tất cả các từ khóa
không mang giá trị (được định nghĩa trong một file văn bản).

Quá trình đánh chỉ mục được thực hiện như sau: Sau khi lấy được
các thông tin cần đánh chỉ mục và đưa vào các trường trong bản
ghi, các thành phần Tokenizer và Filter người phát triển chỉ định
trong file cấu hình sẽ thực hiện tách thông tin trong các trường
thành các từ khóa cụ thể. Các Analyzer này sẽ bổ sung, xóa bớt
hoặc giữ nguyên các từ khóa phụ thuộc vào cách cấu hình của
người phát triển. Sau đó, các từ khóa được sinh ra sẽ đư
ợc lưu lại
trong bộ chỉ mục chuyên biệt để tìm kiếm. Các giá trị nguyên bản
ứng với mỗi trường sẽ được lưu lại hoặc không lưu lại (tùy cách
cấu hình trư ờng trong file cấu hình bản ghi (schema) của người

phát triển); nếu được lưu lại, nếu máy tìm kiếm tìm được thông tin
(hit), sẽ trả lại giá trị này, còn không sẽ không trả lại giá trị.

Đ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

10
Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology


Đ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

Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology
11

iii. Quá trình tìm kiếm


QueryParser: Là các bộ xử lý truy vấn của người dùng.Với mỗi bộ
xử lý sẽ có cách xử lý truy vấn riêng như tìm ki ểm ở đâu, trên
trường nào, có đánh trọng số lên trường nào lúc tìm kiếm hay
không…
Khi người dùng thực hiện một câu lệnh truy vấn, câu lệng truy vấn
sẽ được xử lý bởi các request handler (bộ xử lý yêu cầu tìm kiếm,
update, hoặc xóa…). Các request handler này sẽ xác định các logic
Đ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

12
Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology

cần thực hiện đối với các yêu cầu đó. Câu lệnh truy vấn sẽ được xử

lý bởi QueryParser, bộ phận này sẽ chịu trách nhiệm sao cho câu
truy vấn tìm kiếm của người dùng được tách khỏi các tham số
trong câu lệnh truy vấn. Có nhiều loại QueryParser trong 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 hiện các câu lệnh tìm kiếm đơn giản nhưng trên nhiều trường
khác nhau. Sau đó, truy vấn tìm kiếm được các Analyzer chỉ định
bởi người phát triển tách thành các từ khóa khác nhau.

Sau đó, bộ máy tìm kiếm sẽ tìm kiếm các từ khóa cùng với trọng
số trên các từ khóa đó (nếu có) trong bộ dữ liệu chỉ mục của hệ
thống. Giá trị trả về sẽ được xử lý tiếp dựa vào các tham số truyền
vào trong câu lệnh truy vấn của người dùng như bắt đầu từ bản ghi
nào, kết thúc đến bản ghi nào, trả về theo định dạng gì… Ngoài ra,
các thành phần được chỉ định trong yêu cầu truy vấn sẽ được xử lý
Đ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

Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology
13

thêm trong phần này như thành phần HightLighting sẽ đánh dấu
các từ khóa trong câu lệnh truy vấn của người dùng phù hợp với từ
nào trong bản ghi trong bộ dữ liệu chỉ mục của bộ máy tìm kiếm.

Các kiểu tìm kiếm được hỗ trợ trong Solr:
• Normal Query: Chỉ có từ khóa trong câu lệnh truy vấn của
người dùng
• Wildcard Query: Có thêm các ký tự wildcard trong câu
lệnh truy vấn. ? thay cho một ký tự; * thay cho không hoặc
nhiều ký tự

• Range Searches: Cho phép tìm kiếm trong một khoảng nhất
đị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 như sau:
date_search: [20020101 TO 20030101]
• Boosting: Là trọng số đối với một số từ khóa nào đó trong
câu truy vấn tìm kiếm của người dùng. Ví dụ: name:
dong^2 anh thì dong có trọng số là 2 và kết quả trả về sẽ
đưa lên đầu các tên có dong trước các tên có anh.
• QueryField: Xác định xem trường nào sẽ được chỉ định
thực hiện việc truy vấn ngay trên nó. Ví dụ: Tìm kiếm tên:
name:dong anh sẽ tìm kiếm trên trường tên giá trị là dong
anh
• Boolean Operator: Là toán hạng sẽ được sử dụng để kết nối
các giá trị của từ khóa người dùng.Ví dụ: name: dong AND
anh thì sẽ tìm trong trường tên có giá trị là dong và anh.
• Datetime Query: Thực hiện tìm kiếm trên các trường có
kiểu datetime. Ví dụ: event_date: [* TO NOW-2YEAR] sẽ
tìm kiếm các bản ghi có giá trị event_date từ năm bất kỳ
đến cách đây 2 năm.
Các tham số
• Start: Bắt đầu từ bản ghi nào
• Rows: Số lượng bản ghi cần trả về
• DebugQuery: Trả về thêm các giá trị tính toán điểm cũng
như các thành phần khác trong máy tìm kiếm để người phát
triển có thể phân tích đánh giá kết quả trả về
• Response Writer: Kiểu định dạng trả về cho người dùng, có
thể thuộc dạng XML hoặc JSON.
3. Solr trong dự án BKProfile
a. BKProfile là gì
BKProfile là một bộ máy tìm kiếm, chuyên thực hiện tìm kiếm để trả về

thông tin của con người. Bộ máy tìm kiếm này phục vụ mục đích tìm kiếm
con người cho 3 đối tượng chính: Các sinh viên hoặc cựu sinh viên muốn
tìm một sinh viên nào đó nhằm phục vụ một mục đích nào đó; Các nhà
làm giáo dục có thể thực hiện tìm kiếm sinh viên sau khi ra trường để đánh
giá thực trạng giáo dục…; Các nhà tuyển dụng tìm kiếm các ứng viên có
tiềm năng.
Đ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

14
Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology

Vì BKProfile là một hệ thống tìm kiếm nên nó cũng có các yêu cầu cơ bản
của một hệ thống tìm kiếm như
• Độ phù hợp của kết quả cao
• Tốc độ thực thi nhanh chóng
• Thông tin trả về là duy nhất đối với một người
• Có thêm các tính năng 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 bản ghi chỉ mục

Bản ghi bao gồm có các trường
• *_indexed: Để lưu các thông tin của các trường có kết thúc là
_indexed.
• Text: là một copy field, mọi giá trị của các trường khác sẽ được
chuyển thẳng vào trong trường này. Trường này được thực hiện
việc tìm kiếm mặc định.
• Profile_id: Là đại diện cho một bản ghi.
Thiết kế kiểu trường
• BKText là một kiểu dữ liệu custom được tạo riêng cho dự án
BKProfile.

o Quá trình đánh chỉ mục
 WhiteSpaceTokenizerFactory: Tách giá trị của các
trường thành các từ khóa dựa vào khoảng trắng giữa
các từ khóa
 ASCIIFoldingFilterFactory: Chuyển tất cả từ khóa
về dạng ASCII để có thể tìm kiếm theo dạng tiếng
việt không dấu
 WordDelimiterFilterFactory: Tách từ ghép trong đó
có cả chữ cái và số thành chữ cái riêng và số riêng
 LowerCaseFilterFactory: Chuyển tất cả từ khóa về
dạng chữ cái thường
 SynonymFilterFactory:Sử dụng từ đồng nghĩa đ ể
cho phép quá trình tìm kiếm có kết quả tốt hơn
 StopFilterFactory: Loại bỏ tất cả các từ không mang
nhiều ý nghĩa. Các t ừ khóa này được định nghĩa
trong một file riêng (stopword.txt). Hầu hết các từ
này đều là từ cảm thán.
 ShingleFilterFactory: Ghép nối các từ khóa thành
các cụm từ (tối đa là 5) để tăng độ chính xác trong
lúc tìm kiếm
Đ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

Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology
15

 SnowballPorterFilterFactory: Để loại bỏ các từ bắt
nguồn từ từ khác
 RemoveDuplicatesTokenFilterFactory: Loại bỏ tất
cả các từ khóa trùng nhau sau khi được tạo bởi tất
cả các filter trên.


Đ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

16
Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology


o Quá trình tìm kiếm
 WhiteSpaceFilterFactory:Tách truy vấn của người
dùng thành các từ khóa dựa vào khoảng trắng
 ASCIIFoldingFilterFactory: Chuyển các từ khóa
thành dạng ASCII để có thể tìm kiếm tiếng việt
không dấu
 WordDelimiterFilterFactory:Tách từ ghép trong đó
có cả chữ cái và số thành chữ cái riêng và số riêng
 LowerCaseFilterFactory: Chuyển tất cả từ khóa về
dạng chữ cái thường
 SynonymFilterFactory: Sử dụng từ đồng nghĩa đ ể
cho phép quá trình tìm kiếm có kết quả tốt hơn
 StopFilterFactory: Loại bỏ tất cả các từ không mang
nhiều ý nghĩa. Các t ừ khóa này được định nghĩa
trong một file riêng (stopword.txt). Hầu hết các từ
này đều là từ cảm thán.
Đ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

Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology
17

 ShingleFilterFactory: Ghép nối các từ khóa thành
các cụm từ (tối đa là 5) để tăng độ chính xác trong

lúc tìm kiếm
 SnowballPorterFilterFactory: Để loại bỏ các từ bắt
nguồn từ từ khác
 RemoveDuplicatesTokenFilterFactory: Loại bỏ tất
cả các từ khóa trùng nhau sau khi được tạo bởi tất
cả các filter trên.

c. Nâng cao chất lượng tìm kiếm
i. Đánh trọng số
Đối với mỗi trường khác nhau có trọng số khác nhau. Ví dụ như
khi thực hiện tìm kiếm thì trường tên thường mang giá trị cao hơn
so với các trường khác. Điều này cũng đúng v ới các trường như
tên trường, tên lớp Vì vậy, khi thực hiện thiết kế file chỉ mục,
phải thực hiện đánh trọng số cho các trường đó để kết quả trả về có
độ phù hợp cao hơn so với mặc định
ii. Gom nhóm các cụm từ hay xuất hiện
Khi cùng tìm kiếm đối với một cụm từ nào đó, Solr không thể phát
hiện đâu là cụm từ mà nó thực hiện tìm kiếm trên toàn bộ các bản
ghi xem có xuất hiện từ khóa đó hay không. Đây là điều chúng ta
không hề mong muốn. Ví dụ khi tìm kiếm từ Công nghệ phần mềm
thì các kết quả có chứa công nghệ hoặc phần mềm sẽ đứng trước
các kết quả có công nghệ an. Vì vậy, một từ điển để định nghĩa đâu
là cụm từ hay xuất hiện để tăng thêm điểm cho chúng trong kết quả
trả về để tăng thêm độ phù hợp trong kết quả tìm kiếm
Đ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

18
Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology



Đ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

Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology
19

4. Demo
Tìm kiếm với từ khóa Huỳnh Quyết Thắng


Đ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

20
Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology

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


Đ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

Nguyễn Văn Đông Anh - CNPM K51 - Hanoi University of Technology
21

Tài liệu tham khảo

[1]. Apache Lucene, Solr


[2]. Packtpub Solr 1.4 Enterprise Search Server 2009
[3]. Lucidworks for Solr

×