5

đọc Querytìm kiếm Full text (Postgres) Vs đàn hồi tìm kiếm

Trong Posgres, Full lập chỉ mục văn bản cho phép các tài liệu được xử lý trước và một chỉ số lưu để tìm kiếm nhanh chóng sau đó. Tiền xử lý bao gồm:

  • Phân tích tài liệu vào mã thông báo.

  • Chuyển mã thông báo thành lexemes.

  • Lưu trữ tài liệu đã được xử lý trước được tối ưu hóa để tìm kiếm.


tsvector loại được sử dụng trong Postgres cho tìm kiếm văn bản đầy đủ

tsvector loại khác với text gõ vào các khía cạnh sau:

  • Loại bỏ trường hợp. Upper/chữ thường là giống hệt nhau

  • Loại bỏ ngăn chặn từ (và, hoặc, không, cô, anh, và hàng trăm người khác) -because những lời này không liên quan cho tìm kiếm văn bản

  • Thay thế từ đồng nghĩa và mất từ thân cây (elephant ->eleph). Trong danh mục văn bản đầy đủ, nó không có từ elephant nhưng từ elep.

  • có thể (và nên) được lập chỉ mục với GIST và GIN

  • Tuỳ chỉnh xếp hạng với trọng lượng & ts_rank


Làm thế nào đàn hồi tìm kiếm (search engine) có lợi thế hơn tìm kiếm văn bản đầy đủ trong Postgres?

Trả lời

3

tìm kiếm toàn văn và elasticsearch đều được xây dựng trên cùng một công nghệ cơ bản chỉ số đảo ngược vì vậy hiệu suất sẽ giống nhau.

FTS sẽ dễ triển khai hơn.

ES đi kèm với lucene,

nếu bạn muốn sáng suốt với FTS sẽ cần thêm nỗ lực.

+0

Để tìm kiếm toàn văn, ngoài thiết lập cơ sở dữ liệu Postgres, chúng tôi có cần bất kỳ điều gì khác để triển khai không? – overexchange

+0

không yêu cầu các thành phần khác, tuy nhiên có khá nhiều thứ để đọc và hiểu trước khi nó có thể được sử dụng .. – Jasen

+0

Có tôi đã đọc [ở đây] (https://github.com/shamhub/Web-app/tree/ master/Elastic_search/Full_text_search_Postgres), nhưng tôi thấy rằng tìm kiếm đàn hồi bằng cách sử dụng lucene hỗ trợ lược đồ ít tài liệu hơn không giống như các bảng postgres. Phải không? – overexchange

Các vấn đề liên quan