Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 39 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
39
Dung lượng
409,44 KB
Nội dung
Cơ sở liệu Đề tài: Search in Depth Finding exact values Structured Search Combining Filter Finding Multiple Exact Values Search in depth Inverted Index Ranges Dealing with null values Relevance Term Requency Inverse document frequency I – Structured Search Finding exact values Khi muốn tìm kiếm xác theo keywork ta nên dùng filter ES, dùng filter nhiều filter khơng phải tính relevance, tính score input đầu vào kết trả Các kết filter trả cache dễ dàng server performance tìm kiếm tốt dùng full-text search Filter quan trọng chúng nhanh Filter khơng tính tốn mức độ liên quan (tránh tồn giai đoạn tính điểm) dễ dàng lưu vào nhớ cache Các kết filter trả cache dễ dàng server performance tìm kiếm tốt dùng full-text search I – Structured Search Term Filter (bộ lọc thuật ngữ): filter sử dụng thường xuyên, có khả xử lý numbers, Booleans, dates và text Term Filter with Numbers (Bộ lọc thuật ngữ với số): Ví dụ: giả sử có loạt products index ES: POST /my_store/products/_bulk {"index": {"_id": 1}} {"price": 10, "productID": "XHDK-A-1293-#fJ3"} {"index": {"_id": 2}} {"price": 20, "productID": "KDKE-B-9947-#kL5"} {"index": {"_id": 3}} {"price": 30, "productID": "JODL-X-1937-#pV7"} {"index": {"_id": 4}} {"price": 30, "productID": "QQPX-R-3956-#aD8"} I – Structured Search Tìm kiếm xác products có giá price = 20 sử dụng SQL: Dùng filter ES: I – Structured Search Term Filter with Numbers (Bộ lọc thuật ngữ với số): Tìm kiếm sản phẩm có productID = XHDK-A-1293-#fJ3 sử dụng SQL: Dùng filter ES: I – Structured Search Kết không mong muốn productID bị analyze (chuyển đổi từ dạng text sang dạng tokens of terms) standard analyzer (phân tích tiêu chuẩn), ta cần phải config (đặt cấu hình) khơng sử dụng analyzer cho field(trường) Thay đổi mapping type cho productID để field khơng đánh index, ta dung filter: I – Structured Search Internal Filter Operation (Sự hoạt động bên lọc) Find matching docs (Tìm tài liệu phù hợp) Build a bitset (Xây dựng tập hợp bit) Cache the bitset (Lưu vào nhớ cache tập hợp bit) Khi thực truy vấn lọc, lọc thực thi trước truy vấn Tập hợp bit kết đưa cho truy vấn, sử dụng để đơn giản bỏ qua tài liệu bị lọc loại trừ Đây cách mà lọc cải thiện hiệu suất Ít tài liệu đánh giá truy vấn có nghĩa thời gian phản hồi nhanh I – Structured Search Combining Filters Để tìm kiếm nhiều field query, kết hợp nhiều filter với Trong tình này, ta cần lọc bool Đây lọc phức hợp chấp nhận lọc khác làm đối số, kết hợp chúng theo nhiều kiểu kết hợp Boolean khác Để viết câu truy vấn DSL, cần dùng Boolean filter Hai ví dụ trước cho thấy lọc sử dụng Trong thực tế, ta cần phải lọc nhiều giá trị trường Ví dụ, SQL: I – Structured Search Bool Filter: gồm phần: { "bool": { "must": [], "should": [], "must_not": [], } } must: tất mệnh đề phải phù hợp Tương đương AND must_not: tất mệnh đề không phù hợp Tương đương NOT should: Ít mệnh đề phải khớp Tương đương OR I – Structured Search Ta lấy lại hai tài liệu khơng có giá trị thực trường tags — tài liệu 4: "hits": [ { "_id": "3", "_score": 1,0, "_source": {"other_field": "một số liệu"}}, { "_id": "4", "_score": 1,0, "_source": {"tags": null}} ] Nó phù hợp với loại trường Không thể sử dụng chuỗi null_value trường loại ngày Nó khác với giá trị bình thường mà trường chứa, để tránh nhầm lẫn giá trị thực với giá trị null II – Inverted Index Các kết trình phân tích lưu trữ inverted index - gọi số đảo ngược Một Inverted index chứa danh sách từ đơn (unique work) xuất document bao phủ index, ứng với từ danh sách document mà từ xuất (mapping) lưu trữ Vì vậy, bản, inverted index ánh xạ điều khoản tài liệu chứa điều khoản Vì inverted index hoạt động cấp trường tài liệu lưu trữ thuật ngữ cho trường định, nên khơng cần phải xử lý trường khác II – Inverted Index Ví dụ: Giả sử có hai cơng thức nấu ăn với tiêu đề sau: “The Best Pasta Recipe with Pesto” “Delicious Pasta Carbonara Recipe” Bảng sau cho thấy inverted index II – Inverted Index Bước truy vấn tìm kiếm tìm tài liệu khớp với truy vấn vị trí Vì vậy, tìm kiếm "pasta recipe", ta thấy hai tài liệu chứa hai thuật ngữ II – Inverted Index Nếu tìm kiếm theo thuật ngữ “delicious recipe” kết sau: II – Inverted Index Tóm lại: Một phân tích áp dụng cho trường tồn văn kết q trình phân tích lưu trữ một inverted index Một inverted index bao gồm tất điều khoản cho trường định tất tài liệu index Vì vậy, thực truy vấn tìm kiếm, ta khơng thực tự tìm kiếm tài liệu, mà một inverted index Điều quan trọng để hiểu khơng, bị bối rối lý số truy vấn không phù hợp với mong đợi III – Relevance Là thuật toán toán mà sử dụng để tính tốn mức độ tương tự nội dung trường văn với chuỗi truy vấn toàn văn (full – text) The relevance score tài liệu biểu diễn số thực dấu phẩy động dương gọi the_score The_score cao liệu liên quan The_score cao liệu liên quan (relevance) Một mệnh đề truy vấn tạo the_score cho tài liệu Do cách tính score phụ thuộc vào loại mệnh đề truy vấn III – Relevance Thuật toán tương tự tiêu chuẩn sử dụng Elasticsearch: Term frequency (TF) Inverse document frequency (IDF) III – Relevance Term frequency III – Relevance search với từ khoá "quick { "title": "The quick brown fox jumps over the quick dog" } { "title": "The quick brown fox" } TF tính theo cơng thức sau: tf(t, d) = √frequency term frequency (tf) t document d tính bậc hai số lần t xuất d III – Relevance Từ khố xuất (“lẩu") cho relevance cao từ khoá xuất nhiều (“lẩu hải sản tơm hùm") tồn index Mặc dù vậy, kết khơng có nghĩa từ khoá "" tốt từ khoá “lẩu“ III – Relevance Inverse document frequency (IDF) Inverse document frequency (idf) t logarit số e (logarit tự nhiên) thương tổng số documents index số documents xuất t (giá trị công thêm để tránh xảy lỗi Division by zero) IDF đánh giá theo công thức sau: idf(t) = + log (numDocs / (docFreq + 1)) III – Relevance Công thức: norm(d) = / √numTerms Relevance(độ liên quan) không tìm kiếm tồn văn (full-text search) mà hồn tồn áp dụng cho mệnh đề có khơng, nhiều mệnh đề xác the_score cao Khi nhiều mệnh đề truy vấn kết hợp cách sử dụng phép truy vấn ghép bool query, the_score cho mệnh đề truy vấn kết hợp tính tốn over_all_score ( tổng điểm ) cho tài liệu Giải thích: field-length norm (norm) nghịch đảo bậc hai số lượng term field (có thể hiểu số lượng chữ field đó) Các truy vấn đơn kết hợp TF/IDF score với yếu tố khác xấp xỉ term phrase queries (truy vấn cụm từ ) , giống term truy vấn mờ III – Relevance _score cuối tích TF, IDF Field-length norm giá trị trên: IDF score * TF score * fieldNorms hay log(numDocs / (docFreq + 1)) * √frequency * (1 / √numTerms) Cảm ơn thầy bạn ý lắng nghe!!! Thành viên: Vũ Thị Thùy Dung – MSV 19000403 Công Anh Dũng – MSV 19000405 Trần Tuấn Huy – MSV 19000436 Hoàng Đức Trung – MSV 19000497 Trần Minh Vũ – MSV 19000501 ...Finding exact values Structured Search Combining Filter Finding Multiple Exact Values Search in depth Inverted Index Ranges Dealing with null values Relevance Term Requency Inverse document... tài liệu liên kết Như vậy, tài liệu chứa token inverted index Vì thế, hai kết trả Để xác định tài liệu cụ thể chứa yêu cầu mình, ta phải tìm thuật ngữ inverted index, trích xuất ID tài liệu, ... {“temp”: {“tags”: ? ?search? ??}}, khớp với hai tài liệu sau: {“tags”: [? ?search? ??]} {“tags”: [? ?search? ??, “open_source”]} Cách hoạt động lọc thuật ngữ: Nó kiểm tra inverted index cho tất tài liệu có chứa