Elasticsearch là gì?
Scrapeless Web Unlocker truy xuất nội dung web công khai mà một ứng dụng có thể chuyển đổi thành tài liệu cho Elasticsearch.
Elasticsearch là một engine tìm kiếm và phân tích phân tán, lập chỉ mục các tài liệu và trả lời truy vấn trên các trường của chúng. Ứng dụng dùng nó để tìm kiếm văn bản, lọc thuộc tính có cấu trúc và tóm tắt dữ liệu đã lập chỉ mục. Thiết kế của nó đặc biệt hữu ích khi mọi người cần truy xuất tài liệu liên quan từ một bộ sưu tập thay vì chỉ định vị một hàng thông qua một định danh đã biết.
Một bộ sưu tập web có thể tìm kiếm cần nhiều hơn các trang đã tải về. Nó cần một mô hình tài liệu, định danh ổn định và các quy tắc để quyết định nội dung nào xứng đáng được đưa vào chỉ mục. Elasticsearch làm cho nội dung đã được chấp nhận trở nên có thể tìm kiếm; nó không xác lập rằng bộ thu thập đã lấy đúng trang dự định hoặc rằng các tuyên bố của một trang là đúng sự thật.
Tài liệu, Trường và Chỉ mục
Một tài liệu Elasticsearch nhóm các trường có tên mô tả một mục đã lập chỉ mục. Một chỉ mục thu thập các tài liệu dưới các thiết lập và mapping ảnh hưởng đến lưu trữ và tìm kiếm. Cùng một trang nguồn có thể tạo ra các tài liệu tìm kiếm khác nhau tùy thuộc vào việc ứng dụng lập chỉ mục cả bài viết, một sản phẩm riêng lẻ hay một phần của một trang tham chiếu dài.
Hãy chọn đơn vị truy xuất trước khi thiết kế chỉ mục. Kết quả tìm kiếm nên xác định nội dung mà người dùng có thể hiểu và mở. Chia một bài viết thành các phần có thể cải thiện độ chính xác cho một câu hỏi cụ thể, nhưng mỗi phần cần có mối quan hệ với trang cha và đủ ngữ cảnh để làm rõ ý nghĩa của nó.
JSON cung cấp một biểu diễn chung cho trao đổi tài liệu. Mô hình dữ liệu JSON định nghĩa đối tượng, mảng và các giá trị nguyên thủy, trong khi schema tài liệu của ứng dụng gán ý nghĩa cho các giá trị đó. Một trường tên là published_at cần một diễn giải đã được thống nhất; JSON hợp lệ về mặt cú pháp không thể cho bạn biết giá trị đó thực sự mô tả thời điểm xuất bản hay thời điểm thu thập.
Định danh tài liệu ổn định cũng quan trọng như vậy. Nếu mỗi bộ sưu tập tạo ra một định danh không liên quan, các lần quan sát lặp lại có thể xuất hiện như các kết quả tìm kiếm trùng lặp. Nếu tất cả phiên bản ghi đè lên một định danh mà không lưu giữ lịch sử ở nơi khác, ứng dụng có thể mất khả năng giải thích điều gì đã thay đổi. Hãy quyết định liệu chỉ mục đại diện cho nội dung hiện tại, các quan sát lịch sử hay một sự kết hợp có chủ đích.
Vì sao inverted index giúp ích cho tìm kiếm văn bản
Một inverted index liên kết các thuật ngữ với những tài liệu chứa chúng. Thay vì quét toàn bộ văn bản của mọi trang cho mọi truy vấn, một công cụ tìm kiếm có thể dùng thông tin thuật ngữ đã lập chỉ mục để xác định các kết quả phù hợp tiềm năng. Khả năng tìm kiếm và lập chỉ mục của Apache Lucene là một phần của nền tảng kỹ thuật phía sau Elasticsearch.
Phân tích văn bản ảnh hưởng đến việc thuật ngữ nào đi vào chỉ mục. Một analyzer có thể tách văn bản thành token và áp dụng các biến đổi phù hợp với trường. Điều đó có nghĩa là văn bản được hiển thị và biểu diễn đã lập chỉ mục phục vụ những mục đích khác nhau. Hãy bảo toàn văn bản nguồn để hiển thị trong khi lựa chọn hành vi phân tích dựa trên ngôn ngữ và truy vấn mà ứng dụng mong đợi.
Một định danh thường cần cách xử lý khác với văn bản bài viết. Mã sản phẩm hoặc hostname có thể yêu cầu khớp chính xác, trong khi một đoạn văn nên hỗ trợ truy xuất theo ngôn ngữ. Việc coi mọi chuỗi đều là văn bản có thể thay thế cho nhau có thể khiến việc lọc trở nên khó lường và làm sai lệch hiểu biết của người dùng về một lần tra cứu chính xác.
Độ liên quan cũng cần phán đoán sản phẩm. Một tài liệu khớp không nhất thiết là tài liệu hữu ích nhất, và một điểm số cao không chứng minh được tính xác thực. Hãy đánh giá các câu hỏi đại diện của người dùng so với các kết quả hữu ích mong đợi. Bao gồm các trường hợp liên quan đến truy vấn ngắn, thuật ngữ mơ hồ và các tài liệu chia sẻ từ ngữ trong khi mô tả những chủ đề khác nhau.
Mapping mang lại ý nghĩa tìm kiếm cho trường
Mapping định nghĩa cách các trường được lưu trữ và lập chỉ mục. Mô hình mapping của Elasticsearch phân biệt suy diễn trường tự động với các định nghĩa trường tường minh. Suy diễn tự động có thể giúp khám phá, trong khi các trường sản xuất quan trọng hưởng lợi từ kiểu dữ liệu được cân nhắc kỹ và hành vi có thể dự đoán.
Hãy xét một bộ sưu tập sản phẩm công khai với tiêu đề, định danh nguồn, thời điểm quan sát và giá. Tiêu đề là nội dung mang ngôn ngữ. Định danh nguồn là một trường định danh chính xác. Thời điểm quan sát hỗ trợ lọc theo thời gian, và giá hỗ trợ so sánh số học chỉ khi tiền tệ và đơn vị của nó cũng đã được mô hình hóa đúng cách.
Tránh để các khóa nguồn tùy ý trở thành một danh mục trường mất kiểm soát. Một trang có thể lộ ra nhiều nhãn khác nhau, và việc mù quáng nâng từng nhãn thành một mapping mới có thể mở rộng cấu trúc chỉ mục vượt quá nhu cầu của ứng dụng. Hãy chuẩn hóa các trường đã biết và giữ các thuộc tính thực sự biến đổi trong một biểu diễn được lựa chọn có chủ đích.
Thay đổi mapping nên được coi như thay đổi mô hình. Một số thay đổi cần một chỉ mục mới và lập chỉ mục lại thay vì diễn giải lại tại chỗ dữ liệu hiện có. Hãy bảo toàn khả năng truy cập tới các bản ghi nguồn đã được chấp nhận để nhóm có thể xây dựng lại biểu diễn tìm kiếm khi thiết kế trường hoặc quy tắc phân tích thay đổi.
Thành công khi ingest và khả năng hiển thị trong tìm kiếm là khác nhau
Elasticsearch làm cho các thay đổi đã lập chỉ mục trở nên sẵn sàng cho tìm kiếm thông qua hành vi refresh. Do đó, một lần ghi thành công và một lần tìm kiếm ngay lập tức thấy tài liệu đã cập nhật là hai mốc khác nhau. Hãy định nghĩa độ tươi mới dựa trên mốc mà ứng dụng thực sự cam kết.
Một pipeline tài liệu có thể ghi lại riêng rẽ việc hoàn tất thu thập, hoàn tất chuyển đổi và khả năng hiển thị trong tìm kiếm. Khi một người dùng hỏi vì sao bài viết đã cập nhật không xuất hiện, các trạng thái đó sẽ cho thấy liệu nguồn đã được thu thập, tài liệu đã được chấp nhận hay biểu diễn tìm kiếm vẫn đang chờ để trở nên hiển thị.
Đừng cho rằng việc bắt buộc cập nhật khả năng hiển thị sau mỗi tài liệu riêng lẻ là chính sách vận hành tốt nhất. Hãy chọn hành vi thu thập và hiển thị dựa trên yêu cầu về độ mới của ứng dụng và khối lượng công việc được đo lường. Một bộ sưu tập nghiên cứu định kỳ có kỳ vọng khác với một giao diện xuất bản tương tác, nơi tác giả ngay lập tức tìm kiếm một trang đã thay đổi.
Việc xóa bỏ cũng cần một đường đi rõ ràng. Một nguồn biến mất khỏi một bộ sưu tập đã phê duyệt có thể cần được gỡ khỏi chỉ mục, đánh dấu là không khả dụng hoặc được giữ lại như lịch sử. Một bộ thu thập chỉ thêm và cập nhật tài liệu có thể để các kết quả cũ tiếp tục có thể tìm kiếm vô thời hạn cho dù lần thu thập mới nhất của nó trông vẫn thành công.
Biến các trang công khai thành tài liệu tìm kiếm
Một pipeline từ web đến tìm kiếm nên tách biệt việc truy xuất khỏi việc chấp nhận tài liệu. Scrapeless Web Unlocker có thể truy xuất nội dung trang công khai, trong khi ứng dụng nhận diện trang, trích xuất văn bản liên quan và xây dựng tài liệu tìm kiếm. Khả năng của Scrapeless Web Unlocker mô tả dịch vụ truy xuất thay vì một trình kết nối chuyên biệt cho Elasticsearch.
Đối với một bộ sưu tập tham khảo kỹ thuật, hãy bắt đầu với một tập hợp được phê duyệt gồm các định danh trang chuẩn. Lưu URL nguồn và ngữ cảnh quan sát cùng với nội dung đã được chấp nhận. Loại bỏ điều hướng lặp lại khỏi văn bản tìm kiếm thông qua một quy tắc trích xuất vẫn giữ được tiêu đề bài viết và các mối quan hệ phần nội dung có ý nghĩa.
Kiểm tra định danh nội dung trước khi lập chỉ mục. Một trang thử thách, điểm đến chuyển hướng không liên quan hoặc một thông báo lỗi HTML hợp lệ không nên thay thế một bài viết tham khảo đã được chấp nhận. Tương tự, một kết quả trích xuất rỗng không nên âm thầm xóa văn bản tìm kiếm cũ trừ khi ứng dụng đã xác nhận việc xóa nguồn thực sự.
Phần thảo luận rộng hơn về nội dung web mới cho các pipeline truy xuất giải thích lý do tại sao độ mới của truy xuất phụ thuộc vào quy trình thu thập xung quanh một chỉ mục. Kho lưu trữ tìm kiếm không thể tự biến nội dung nguồn cũ thành mới. Hãy bao gồm khoảng thời gian thu thập và chính sách chấp nhận nguồn trong cam kết về độ mới, và tham khảo Scrapeless pricing khi quyết định tần suất truy cập lại các nguồn.
Elasticsearch và Hệ thống Ghi Nhận
Một chỉ mục tìm kiếm thường hoạt động tốt nhất như một bản biểu diễn có thể được xây dựng lại từ các bản ghi nguồn đã được chấp nhận. Một hệ thống ghi nhận riêng có thể lưu giữ các quan sát đã được xác thực và các mối quan hệ nghiệp vụ, trong khi Elasticsearch phục vụ các tài liệu định hướng truy xuất được dẫn xuất từ chúng.
| Trách nhiệm | Người sở hữu điển hình | Câu hỏi thiết kế |
|---|---|---|
| Chấp nhận nguồn | Ứng dụng thu thập | Đây có phải là nội dung dự định? |
| Lịch sử quan sát đã được chấp nhận | Lưu trữ ứng dụng bền vững | Bản ghi nguồn có thể được giải thích sau này không? |
| Biểu diễn tìm kiếm | Chỉ mục Elasticsearch | Những trường nào hỗ trợ truy vấn của người dùng? |
| Trình bày kết quả tìm kiếm | Giao diện ứng dụng | Người dùng có thể nhận diện và kiểm tra kết quả không? |
Sự tách biệt này là một lựa chọn thiết kế, không phải khẳng định rằng Elasticsearch không thể lưu dữ liệu. Nó giúp việc khôi phục và phát triển mô hình dễ suy luận hơn khi các tài liệu tìm kiếm chứa nội dung đã được biến đổi hoặc kết hợp. Dữ liệu đầu vào cho việc xây dựng lại nên có một schema đã biết và nguồn gốc được giữ lại, thay vì chỉ là bất kỳ trang nào tình cờ truy cập được trong một sự cố.
Đánh giá chất lượng tìm kiếm với các câu hỏi cụ thể
Chất lượng tìm kiếm nên được đánh giá dựa trên các nhiệm vụ tiêu biểu và những kết quả hữu ích mong đợi. Một phản hồi truy vấn thành công chỉ chứng minh rằng công cụ đã trả lời yêu cầu. Nó không chứng minh rằng kết quả đầu tiên là phù hợp, rằng các trang gần đây có mặt, hoặc rằng các nguồn quan trọng đã được bao gồm.
Hãy xây dựng các trường hợp đánh giá xoay quanh những gì người dùng thực sự hỏi. Một kỹ sư hỗ trợ có thể cần tên cấu hình chính xác; một nhà nghiên cứu có thể mô tả một khái niệm bằng những từ khác nhau. Theo dõi riêng những trường hợp đó để các cải thiện về khớp ngôn ngữ rộng không che giấu sự thoái lui trong việc truy xuất định danh chính xác.
Cũng hãy kiểm tra các nội dung bị loại trừ khỏi bộ sưu tập. Tài liệu bị thiếu có thể là vấn đề thu thập dữ liệu chứ không phải vấn đề độ liên quan. Một chỉ mục có xếp hạng tuyệt vời trên một bộ sưu tập thiếu sót vẫn cho độ bao phủ không đầy đủ. Hãy làm cho điều kiện đủ của nguồn và kết quả thu thập trở nên hiển thị bên cạnh đánh giá truy vấn để nhóm có thể thay đổi đúng phần của pipeline.
Kết luận
Elasticsearch biến các tài liệu đã được mô hình hóa thành nội dung có thể tìm kiếm thông qua lập chỉ mục, mapping và thực thi truy vấn. Một bộ sưu tập hữu ích bắt đầu sớm hơn, với định danh nguồn ổn định và văn bản đã được chấp nhận, và tiếp tục sau khi thu thập, với các kiểm tra về khả năng hiển thị và chất lượng. Hãy xác định đơn vị truy xuất và giữ lại dữ liệu đầu vào có thể xây dựng lại trước khi tinh chỉnh hành vi tìm kiếm. Điều đó mang lại cho ứng dụng một lớp tìm kiếm mà nó có thể giải thích và cải thiện.
Sẵn sàng xây dựng một bộ sưu tập web có thể tìm kiếm?
Xác định định danh tài liệu, mapping trường và chấp nhận nội dung trước khi gửi các trang đã thu thập đến một chỉ mục tìm kiếm.
Đăng ký hôm nay và nhận $5 tín dụng miễn phí — không cần thẻ tín dụng.
Nhận $5 Credit của bạn →Câu hỏi thường gặp
Hỏi: Elasticsearch có phải là cơ sở dữ liệu quan hệ không?
Elasticsearch là một công cụ tìm kiếm và phân tích phân tán, có mô hình lập chỉ mục tài liệu khác với cơ sở dữ liệu quan hệ. Hãy chọn một hệ thống lưu trữ chính riêng khi ứng dụng của bạn cần các quan hệ giao dịch và các ràng buộc quan hệ.
Hỏi: Tài liệu mới có thể được tìm kiếm ngay lập tức không?
Các thay đổi đã lập chỉ mục trở nên có thể tìm kiếm được thông qua quá trình refresh, vì vậy việc nạp dữ liệu thành công và việc hiển thị trong tìm kiếm là hai mốc khác nhau. Hãy khớp yêu cầu về độ mới của ứng dụng với hành vi hiển thị được cấu hình.
Hỏi: JSON hợp lệ có đảm bảo một tài liệu tìm kiếm tốt không?
JSON hợp lệ thiết lập một định dạng tuần tự hóa, trong khi một tài liệu tìm kiếm hữu ích cũng cần danh tính ổn định, ánh xạ phù hợp và nội dung có ý nghĩa. Một đối tượng hợp lệ chứa thông báo truy cập vẫn có thể là tài liệu sai để lập chỉ mục.
Hỏi: Mọi trường có cần phân tích toàn văn không?
Các trường được dùng cho lọc chính xác, định danh, tính toán số và ngày tháng cần kiểu dữ liệu phù hợp với các mục đích đó. Hãy áp dụng phân tích toàn văn cho nội dung mang ngôn ngữ mà các thuật ngữ của nó nên tham gia vào tìm kiếm văn bản.