Khả năng tìm kiếm cụm từ được tích hợp vào dữ liệu tìm kiếm văn bản loại tsquery
. toán tử tìm kiếm văn bản @@
bạn hiển thị có tsvector
ở bên trái và một tsquery
rẽ phải. Và một tsvector
có thể được tạo từ bất kỳ loại ký tự nào cũng như từ tài liệu JSON.
Có liên quan:
Bạn có thể chuyển đổi json
của mình hoặc jsonb
tài liệu đến vectơ tìm kiếm văn bản bằng một trong các chuyên dụng chức năng
:
to_tsvector()
json(b)_to_tsvector()
Lưu ý rằng những điều này chỉ bao gồm giá trị từ tài liệu JSON, không phải từ khóa . Thông thường, đó là những gì bạn muốn. Ví dụ cơ bản:
SELECT to_tsvector(jsonb '{"foo":"jump quickly"}')
@@ to_tsquery('jump <-> quick:*');
Thể hiện đối sánh tiền tố trên đầu tìm kiếm cụm từ khi đang ở đó. Xem:
Ngoài ra , bạn có thể chỉ cần tạo tsvector
từ text
đại diện cho tài liệu JSON của bạn cũng bao gồm các tên khóa:
SELECT to_tsvector((jsonb '{"foo-fighter":"jump quickly"}')::text)
@@ to_tsquery('foo <-> fight:*');
Tạo ra một tsvector
lớn hơn , rõ ràng.
Cả hai đều có thể được lập chỉ mục (là điểm chính của tìm kiếm văn bản). Chỉ các chỉ mục được liên kết với các bảng quan hệ. (Và bạn có thể lập chỉ mục biểu thức
!)
Bản thân biểu thức có thể được áp dụng cho bất kỳ giá trị nào, không bị ràng buộc với các bảng như bạn có vẻ ngụ ý.