A.Các trường được lưu thành cột riêng để tính toán
B.Tài liệu được nén lại và lưu theo thứ tự thời gian
C.Từ khoá ánh xạ tới danh sách tài liệu chứa nó
D.Tài liệu ánh xạ tới danh sách từ khoá bên trong
Đáp án: C
Chỉ mục ngược ánh xạ từ khoá tới danh sách tài liệu chứa nó. Tìm một từ chỉ cần tra một khoá rồi lấy danh sách, thay vì quét toàn bộ tài liệu như cách so khớp chuỗi trong cơ sở dữ liệu quan hệ.
Shard và replica trong Elasticsearch khác nhau ở vai trò nào?
A.Shard nằm trên một máy, replica nằm trên cùng máy đó
B.Shard chia dữ liệu, replica là bản sao của shard
C.Shard dành cho ghi, replica dành riêng cho việc gộp nhóm
D.Shard là bản sao còn replica là phần dữ liệu gốc
Đáp án: B
Shard chia nhỏ dữ liệu của một chỉ mục để phân tán qua nhiều máy; replica là bản sao của shard, đặt trên máy khác để chịu lỗi và tăng thông lượng đọc. Số shard chính cố định lúc tạo chỉ mục, còn số bản sao đổi được.
text được phân tích thành từ nên hợp cho tìm toàn văn; keywordgiữ nguyên cả chuỗi nên hợp cho lọc chính xác, sắp xếp và gộp nhóm. Đây là phân biệt quan trọng nhất khi thiết kế mapping.
Một bộ phân tích trong Elasticsearch gồm những thành phần nào?
A.Bộ nén dữ liệu và bộ mã hoá ký tự
B.Bộ kiểm tra chính tả và bộ dịch ngôn ngữ
C.Bộ sắp xếp và bộ tính điểm liên quan
D.Bộ lọc ký tự, bộ tách từ và các bộ lọc từ
Đáp án: D
Ba tầng chạy tuần tự: bộ lọc ký tự xử lý chuỗi thô, bộ tách từ cắt thành các từ, rồi các bộ lọc từ chuẩn hoá như hạ chữ thường, bỏ dấu, loại từ dừng. Kết quả mới là thứ được lưu vào chỉ mục.
Truy vấn match và truy vấn term khác nhau thế nào?
A.match chỉ dùng cho số, term chỉ dùng cho chuỗi
B.match chỉ tìm được một từ, term tìm được nhiều từ
C.term nhanh hơn vì bỏ qua bước tính điểm liên quan
D.match phân tích chuỗi tìm kiếm, term thì không
Đáp án: D
matchphân tích chuỗi tìm kiếm bằng cùng bộ phân tích của trường rồi mới khớp, còn term khớp nguyên văn với thứ nằm trong chỉ mục. Dùng term trên trường text thường không ra kết quả.
Ghi một tài liệu xong nhưng tìm ngay lại không thấy. Nguyên nhân?
A.Bản sao chưa đồng bộ nên truy vấn không thấy
B.Tài liệu tìm được sau lần làm mới kế tiếp
C.Chỉ mục cần được tối ưu lại trước khi tìm được
D.Tài liệu chưa được ghi thành công xuống đĩa
Đáp án: B
Elasticsearch là hệ thời gian thực gần đúng: tài liệu chỉ tìm thấy sau lần làm mới kế tiếp, mặc định khoảng một giây. Dữ liệu đã bền vững ngay khi ghi xong, chỉ là chưa xuất hiện trong kết quả tìm kiếm.
Vì sao Elasticsearch thường không được dùng làm cơ sở dữ liệu chính?
A.Không truy vấn được theo định danh của tài liệu
B.Không có giao dịch và ràng buộc toàn vẹn
C.Không lưu được dữ liệu xuống đĩa một cách bền vững
D.Không mở rộng được khi dữ liệu lớn dần
Đáp án: B
Nó không có giao dịch trên nhiều tài liệu, không có khoá ngoại và không có ràng buộc toàn vẹn. Mô hình thường dùng là giữ nguồn sự thật ở cơ sở dữ liệu giao dịch rồi đồng bộ sang Elasticsearch để phục vụ tìm kiếm.
Mapping động trong Elasticsearch hoạt động thế nào?
A.Mọi trường đều được lưu dưới dạng chuỗi ký tự
B.Kiểu của trường được xác định lại ở mỗi lần ghi
C.Trường mới tự được đoán kiểu khi lần đầu gặp
D.Trường mới bị bỏ qua cho tới khi khai báo tường minh
Đáp án: C
Trường mới tự được đoán kiểu khi tài liệu đầu tiên chứa nó. Tiện lúc thử nghiệm nhưng nguy hiểm ở sản phẩm: đoán sai kiểu thì phải tạo chỉ mục mới và nạp lại toàn bộ dữ liệu mới sửa được.
Nạp một triệu bản ghi vào Elasticsearch nên dùng cách nào?
A.Tạo một chỉ mục riêng cho mỗi nghìn bản ghi
B.Gửi từng tài liệu một để dễ bắt lỗi
C.Ghi thẳng tệp dữ liệu vào thư mục của chỉ mục
D.Dùng API ghi hàng loạt theo từng lô
Đáp án: D
Dùng API ghi hàng loạt theo từng lô, mỗi lô vài megabyte. Gộp nhiều tài liệu vào một yêu cầu giảm mạnh chi phí mạng và chi phí xử lý, và đây là khác biệt hàng chục lần về tốc độ nạp.
Bí danh là một tên cố định trỏ tới chỉ mục thật. Ứng dụng luôn gọi theo bí danh, nên khi cần đổi mapping thì tạo chỉ mục mới, nạp lại dữ liệu rồi chuyển bí danh sang, không có thời gian ngừng dịch vụ.
Đặt điều kiện lọc vào phần filter thay vì phần must đem lại lợi ích gì?
A.Điều kiện được áp cho cả các chỉ mục khác
B.Không tính điểm liên quan và kết quả được lưu đệm
C.Kết quả trả về được sắp xếp theo thời gian
D.Điều kiện được áp trước khi tìm kiếm bắt đầu
Đáp án: B
Điều kiện trong filterkhông tham gia tính điểm và được lưu đệm ở tầng bộ lọc. Với các điều kiện lặp lại nhiều như trạng thái đang hoạt động hay khoảng thời gian, khác biệt về hiệu năng rất rõ.
Điểm liên quan mặc định của Elasticsearch dựa trên những yếu tố nào?
A.Thứ tự tài liệu được thêm vào chỉ mục
B.Số lượt người dùng nhấp vào tài liệu đó
C.Tần suất từ, độ hiếm của từ và độ dài trường
D.Thời điểm tài liệu được ghi vào chỉ mục
Đáp án: C
Ba yếu tố chính: tần suất từ trong tài liệu, độ hiếm của từ trên toàn chỉ mục, và độ dài trường. Từ hiếm mang nhiều thông tin hơn, còn cùng số lần xuất hiện thì trường ngắn được coi là liên quan hơn.
Vì sao phân trang bằng từ và kích thước không dùng được cho trang sâu?
A.Mỗi shard phải trả kết quả tới vị trí đó
B.Cache bộ lọc không hoạt động với trang sâu
C.Elasticsearch không hỗ trợ nhảy tới trang bất kỳ
D.Kết quả bị lặp lại khi có tài liệu mới được ghi
Đáp án: A
Vì mỗi shard phải trả về toàn bộ kết quả tới vị trí đó cho nút điều phối sắp xếp lại. Chi phí tăng theo độ sâu trang, nên mặc định có giới hạn khoảng mười nghìn kết quả để bảo vệ cụm.
Kết quả đếm số giá trị khác nhau trong gộp nhóm có đặc điểm gì?
A.Chỉ tính trên các tài liệu ở trang kết quả hiện tại
B.Là số xấp xỉ, có sai số khi lượng giá trị lớn
C.Chỉ đếm được trên trường kiểu số
D.Luôn chính xác tuyệt đối trên mọi kích thước dữ liệu
Đáp án: B
Đó là số xấp xỉ: thuật toán ước lượng đổi độ chính xác lấy bộ nhớ cố định. Với lượng giá trị nhỏ thì kết quả thường đúng, còn khi lượng giá trị lớn thì có sai số vài phần trăm.
Mảng đối tượng lưu bằng kiểu object mặc định gây vấn đề gì khi truy vấn?
A.Mảng bị chuyển thành chuỗi ký tự khi lưu
B.Không thể gộp nhóm trên các trường bên trong
C.Quan hệ giữa các trường trong cùng phần tử bị mất
D.Chỉ phần tử đầu tiên của mảng được đánh chỉ mục
Đáp án: C
Các trường bị làm phẳng thành danh sách riêng nên quan hệ trong cùng một phần tử bị mất. Tìm sản phẩm có màu đỏ và cỡ lớn sẽ khớp cả sản phẩm có biến thể đỏ cỡ nhỏ và biến thể xanh cỡ lớn.
B.Dùng truy vấn khớp gần đúng với khoảng cách chỉnh sửa
C.Đánh chỉ mục theo tiền tố bằng bộ lọc ngram biên
D.Tải toàn bộ danh sách về client rồi lọc tại chỗ
Đáp án: C
Dùng bộ lọc ngram biên lúc ghi: mỗi từ được tách sẵn thành các tiền tố. Truy vấn lúc gõ chỉ là khớp từ thường nên rất nhanh, đổi lại chỉ mục lớn hơn và phải nạp lại dữ liệu khi đổi cấu hình.
Tìm kiếm tiếng Việt cần xử lý thêm điều gì so với tiếng Anh?
A.Không cần xử lý gì thêm vì bộ phân tích chuẩn đã đủ
B.Phải dùng bộ phân tích riêng cho từng vùng miền
C.Chuẩn hoá dấu và cho phép tìm không dấu ra có dấu
D.Tách từ theo âm tiết là đủ cho mọi trường hợp
Đáp án: C
Hai việc: chuẩn hoá dấu vì cùng một chữ có thể được mã hoá bằng ký tự có sẵn dấu hoặc ký tự gốc cộng dấu rời; và cho phép gõ không dấu tìm ra kết quả có dấu, vì đó là thói quen phổ biến của người dùng.
Cần đổi kiểu của một trường trong chỉ mục đang chạy. Cách xử lý đúng?
A.Gọi API cập nhật mapping với kiểu mới
B.Tạo chỉ mục mới, nạp lại dữ liệu rồi chuyển bí danh
C.Xoá trường đó rồi thêm lại với kiểu mong muốn
D.Ghi đè toàn bộ tài liệu với giá trị kiểu mới
Đáp án: B
Phải tạo chỉ mục mới với mapping đúng, nạp lại dữ liệu, rồi chuyển bí danh. Kiểu của trường đã tồn tại không sửa tại chỗ được vì dữ liệu trong chỉ mục đã được ghi và mã hoá theo kiểu cũ.
B.Chỉ tồn tại trong bộ nhớ chứ không ghi xuống đĩa
C.Bất biến sau khi tạo, cập nhật là ghi bản mới
D.Mỗi chỉ mục chỉ có đúng một phân đoạn
Đáp án: C
Phân đoạn bất biến sau khi tạo. Cập nhật một tài liệu thực chất là ghi bản mới và đánh dấu bản cũ đã xoá, nên bản cũ vẫn chiếm chỗ cho tới khi các phân đoạn được gộp lại.
Khai báo một trường vừa có dạng text vừa có dạng keyword để làm gì?
A.Vừa tìm toàn văn vừa lọc và gộp nhóm chính xác
B.Tăng tốc độ ghi tài liệu vào chỉ mục
C.Tiết kiệm dung lượng vì dữ liệu chỉ lưu một lần
D.Cho phép đổi kiểu trường mà không cần nạp lại
Đáp án: A
Cùng một dữ liệu được đánh chỉ mục theo hai cách: dạng text cho tìm toàn văn, dạng con keyword cho lọc chính xác, sắp xếp và gộp nhóm. Đổi lại chỉ mục lớn hơn vì lưu trùng nội dung.
Đồng bộ dữ liệu từ cơ sở dữ liệu chính sang Elasticsearch nên làm thế nào?
A.Quét lại toàn bộ bảng mỗi vài phút
B.Truy vấn thẳng cơ sở dữ liệu rồi đánh chỉ mục lúc tìm
C.Đẩy thay đổi qua queue và chấp nhận độ trễ ngắn
D.Ghi đồng thời vào cả hai trong một giao dịch
Đáp án: C
Đẩy thay đổi qua queue hoặc tiến trình đọc nhật ký thay đổi và chấp nhận độ trễ ngắn. Ghi hai nơi trong cùng một giao dịch là không khả thi, nên mô hình đúng là nhất quán cuối cùng có kèm cách phát hiện lệch.
Cấp phát bộ nhớ heap cho nút Elasticsearch nên theo nguyên tắc nào?
A.Cố định ở mức nhỏ vì Elasticsearch không dùng nhiều bộ nhớ
B.Khoảng một nửa bộ nhớ máy, có ngưỡng trần
C.Càng lớn càng tốt, nên cấp gần hết bộ nhớ máy
D.Không cần cấu hình vì hệ thống tự điều chỉnh
Đáp án: B
Khoảng một nửa bộ nhớ máy và không vượt ngưỡng nén con trỏ, thường quanh mức ba mươi gigabyte. Nửa còn lại để hệ điều hành dùng làm cache hệ tệp, thứ quyết định phần lớn tốc độ đọc chỉ mục.
Truy vấn ký tự đại diện bắt đầu bằng dấu sao buộc bộ máy duyệt gần như toàn bộ từ điển từ khoá. Nhu cầu tìm theo phần giữa chuỗi nên được giải quyết bằng cách đánh chỉ mục phù hợp lúc ghi thay vì ép lúc truy vấn.
A.Shard chính đủ nhưng có bản sao chưa được cấp phát
B.Một phần dữ liệu đã bị mất không khôi phục được
C.Cụm đang trong quá trình nâng cấp phiên bản
D.Đĩa đã đầy nên cụm chuyển sang chế độ chỉ đọc
Đáp án: A
Màu vàng nghĩa là shard chính đủ nhưng có bản sao chưa được cấp phát: dữ liệu vẫn đầy đủ và truy vấn bình thường, chỉ là không còn dự phòng nếu mất một nút. Màu đỏ mới là có shard chính thiếu.
Dữ liệu nhật ký nên được tổ chức thành chỉ mục như thế nào?
A.Một chỉ mục duy nhất và xoá tài liệu quá hạn
B.Một chỉ mục cho mỗi server trong hệ thống
C.Một chỉ mục cho mỗi dịch vụ sinh nhật ký
D.Chia theo khoảng thời gian và xoá cả chỉ mục cũ
Đáp án: D
Chia theo khoảng thời gian, ví dụ theo ngày, rồi xoá cả chỉ mục cũ khi hết hạn lưu. Xoá nguyên một chỉ mục là thao tác rẻ, trong khi xoá từng tài liệu theo điều kiện thời gian rất tốn kém và để lại rác chờ dọn.
Tính năng đánh dấu từ khoá trong kết quả tìm kiếm hoạt động thế nào?
A.Elasticsearch lưu sẵn phiên bản đã tô màu của tài liệu
B.Từ khoá được đánh dấu ngay khi ghi vào chỉ mục
C.Client tự tìm chuỗi con trong nội dung trả về
D.Server trả về đoạn văn kèm thẻ bao quanh từ khớp
Đáp án: D
Server trả về đoạn văn kèm thẻ bao quanh từ khớp, dựa trên thông tin vị trí trong chỉ mục. Nhờ vậy nó đánh dấu đúng cả khi từ đã bị hạ chữ thường, bỏ dấu hoặc rút về dạng gốc.
Vì sao sắp xếp trực tiếp trên trường kiểu text bị từ chối?
A.Trường text lưu các từ rời rạc chứ không lưu chuỗi gốc
B.Trường text không được ghi xuống đĩa nên không đọc lại được
C.Trường text luôn quá dài để so sánh với nhau
D.Sắp xếp chỉ hỗ trợ trường kiểu số và ngày
Đáp án: A
Vì trường text lưu các từ rời rạc sau khi phân tích, còn sắp xếp cần một giá trị duy nhất cho mỗi tài liệu. Cách đúng là sắp xếp trên trường con kiểu keyword vốn giữ nguyên chuỗi gốc.
Pipeline biến đổi tài liệu ngay trước khi ghi: tách chuỗi thành các trường, chuẩn hoá giá trị, thêm trường dẫn xuất, làm giàu dữ liệu. Nhờ đó không phải sửa ứng dụng gửi dữ liệu khi cần thay đổi cách xử lý.
Khuôn mẫu chỉ mục giải quyết vấn đề gì khi chỉ mục được tạo tự động?
A.Áp sẵn mapping cho chỉ mục khớp tên mẫu
B.Tự động xoá chỉ mục cũ khi hết hạn lưu
C.Sao chép dữ liệu giữa các chỉ mục cùng nhóm
D.Gộp nhiều chỉ mục thành một để truy vấn
Đáp án: A
Khuôn mẫu áp sẵn mapping và cấu hình cho mọi chỉ mục khớp tên mẫu. Nhờ đó chỉ mục theo ngày được tạo tự động lúc nửa đêm vẫn có đúng mapping, số shard và bí danh mà không ai phải can thiệp.
Muốn sản phẩm bán chạy xuất hiện cao hơn trong kết quả tìm kiếm thì làm thế nào?
A.Lặp lại tên sản phẩm nhiều lần trong trường tiêu đề
B.Ghi các sản phẩm bán chạy vào một chỉ mục riêng
C.Kết hợp điểm liên quan với tín hiệu nghiệp vụ
D.Sắp xếp kết quả theo số lượng đã bán
Đáp án: C
Kết hợp điểm liên quan với tín hiệu nghiệp vụ bằng cơ chế điều chỉnh điểm: nhân hoặc cộng thêm theo độ phổ biến, doanh số, đánh giá. Sắp xếp thẳng theo doanh số sẽ phá hỏng tính liên quan với từ khoá.
Tính năng gợi ý sửa lỗi gõ trong tìm kiếm dựa vào đâu?
A.Một từ điển chính tả tích hợp sẵn của hệ thống
B.Lịch sử tìm kiếm của toàn bộ người dùng
C.So khoảng cách với các từ có trong chỉ mục
D.Mô hình ngôn ngữ được huấn luyện sẵn
Đáp án: C
Nó so khoảng cách chỉnh sửa giữa từ người dùng gõ và các từ có trong chỉ mục. Vì chỉ đề xuất từ thật sự tồn tại trong dữ liệu, gợi ý luôn dẫn tới kết quả có thật thay vì một từ đúng chính tả nhưng không có gì.
Sao lưu dữ liệu Elasticsearch nên làm bằng cách nào?
A.Không cần sao lưu vì đã có bản sao shard
B.Chép thư mục dữ liệu của từng nút sang nơi khác
C.Xuất toàn bộ tài liệu ra tệp bằng truy vấn
D.Dùng cơ chế chụp ảnh vào kho lưu trữ ngoài
Đáp án: D
Dùng cơ chế chụp ảnh vào kho lưu trữ ngoài: nó chạy tăng dần, nhất quán và khôi phục được cả cấu hình chỉ mục. Bản sao shard chỉ chống mất nút chứ không cứu được khi xoá nhầm hoặc dữ liệu hỏng.
Rủi ro lớn nhất khi mở cổng Elasticsearch ra internet là gì?
A.Chỉ các chỉ mục công khai mới bị truy cập
B.Dữ liệu bị lộ nhưng không thể bị sửa đổi
C.Ai cũng đọc và xoá được toàn bộ dữ liệu
D.Cụm bị chậm do có nhiều truy vấn từ bên ngoài
Đáp án: C
API dữ liệu và API quản trị dùng chung một cổng, nên ai truy cập được là đọc, ghi và xoá được mọi chỉ mục. Đây là nguyên nhân của rất nhiều vụ lộ dữ liệu do cụm bị đặt công khai không xác thực.
Nhật ký truy vấn chậm của Elasticsearch giúp gì khi gỡ lỗi hiệu năng?
A.Ghi lại truy vấn vượt ngưỡng kèm nội dung
B.Đo thời gian phản hồi trung bình của cụm
C.Tự động tối ưu lại các truy vấn chậm
D.Chặn các truy vấn chậm không cho chạy tiếp
Đáp án: A
Nó ghi lại truy vấn vượt ngưỡng thời gian kèm nội dung thật. Có nội dung mới tái hiện và phân tích được, thay vì chỉ thấy độ trễ tăng trên biểu đồ mà không biết truy vấn nào gây ra.
Trường được tính lúc truy vấn khác trường thường ở điểm nào?
A.Được lưu lại sau lần truy vấn đầu tiên
B.Không chiếm chỗ trong chỉ mục, tốn khi đọc
C.Nhanh hơn trường thường vì không phải đọc đĩa
D.Chỉ dùng được cho dữ liệu kiểu số
Đáp án: B
Nó không chiếm chỗ trong chỉ mục vì giá trị được tính lúc truy vấn, nên thêm trường mới không cần nạp lại dữ liệu. Đổi lại mỗi truy vấn phải tính lại nên tốn hơn, và không phù hợp cho trường dùng thường xuyên.
Cấu hình nào của chỉ mục không thể đổi sau khi tạo?
A.Bí danh trỏ tới chỉ mục
B.Khoảng thời gian làm mới chỉ mục
C.Số shard chính của chỉ mục
D.Số bản sao của mỗi shard
Đáp án: C
Số shard chính cố định sau khi tạo, vì tài liệu được phân bổ vào shard dựa trên con số đó. Muốn đổi phải tạo chỉ mục mới và nạp lại, đó là lý do cần dùng bí danh ngay từ đầu.