2013-08-20 28 views
5

tôi đã được đọc lên trên materialized views trong tài liệu PostgreSQL 9,3 và đã xem qua ví dụ sau đây, được đưa ra trong tài liệu tham khảo để kiểm tra chính tả một từ:Giải thích việc sử dụng <-> trong PostgreSQL

SELECT word FROM words ORDER BY word <-> 'caterpiler' LIMIT 10; 

Tôi đã thử tìm kiếm Google và StackOverflow, nhưng dấu chấm câu được lọc ra và tôi không thể nhìn thấy những gì nó đang đề cập đến. Ai đó có thể giải thích làm thế nào và những gì nó được sử dụng cho?

Và có thể liên kết đến tài liệu mà tôi có thể đọc thêm về chi tiết về cách sử dụng của nó?

+5

'CHỌN * TỪ pg_operator nơi oprname = '<->';' – joop

Trả lời

4

Theo http://www.postgresql.org/docs/9.1/static/pgtrgm.html toán tử này <-> lợi nhuận chỉnh sửa khoảng cách giữa các chuỗi

văn bản < -> văn bản thực Trả về "khoảng cách" giữa các đối số, đó là một trừ) giá trị (tương đồng.

Vì vậy, toàn bộ truy vấn tìm kiếm 10 từ giống nhất với từ "caterpiler" về chỉnh sửa khoảng cách

1

Đó là toán tử để tìm khoảng cách giữa hai hình hình học (xem documentation). Ngoài ra, đó là "khoảng cách" (? Levenshtein's tài liệu không rõ này một cách rõ ràng) giữa các chuỗi theo this:

text <-> text Trả về "khoảng cách" giữa các đối số, đó là một trừ) giá trị (tương đồng.

+0

Tôi khá chắc chắn với chuỗi của nó là một chỉnh sửa dis tance. [Đây là một ví dụ] (http://sqlfiddle.com/#!1/6ccc5/1438) Cũng đáng chú ý là OP đề cập đến nguồn là tài liệu PostgreSQL. –

+0

Đây không phải là lỗi, đây là cách sử dụng hợp lệ: http://www.postgresql.org/docs/9.1/static/pgtrgm.html – lejlot

+0

Bạn là người phù hợp. Đã sửa câu trả lời của tôi, nhưng @lejlot sẽ nhận được câu trả lời được chấp nhận –

0

Đó là "khoảng cách giữa" nhà điều hành, nhưng nó toán hạng chỉ ghi nhận nhiều loại hình học (điểm , hình dạng, v.v.).

Sau một số thử nghiệm với chuỗi, nó dường như trở lại một chức năng của levenstein distance:

  • 'abc' <-> 'abc' -> 0
  • 'abc' <-> 'abcd' -> 0,5
  • 'abc' <-> 'abd' -> 0,6666
Các vấn đề liên quan