Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3

F.16. FuzzyStrMatch - Xác định sự tương đồng tỷ lệ kèo bóng đá và khoảng cách#

TheFuzzyStrmatchMô -đun cung cấp một số chức năng để xác định điểm tương đồng và khoảng cách giữa các tỷ lệ kèo bóng đá.

THẬN TRỌNG

Hiện tại,SoundEx, Metaphone, Dmetaphonedmetaphone_altCác chức năng không hoạt động tốt với mã hóa Multibyte (như UTF-8). Sử dụngDaitch_mokotoffhoặcLevenshteinVới dữ liệu đó.

Mô -đun này được coi làđáng tin cậyHồi, nghĩa là nó có thể được cài đặt bởi những người không phải là người siêu giám sát cóTạoĐặc quyền trên cơ sở dữ liệu hiện tại.

F.16.1. SoundEx#

Hệ thống SoundEx là một phương pháp phù hợp với tên âm thanh tương tự bằng tỷ lệ kèo bóng đá chuyển đổi chúng thành cùng một mã. Nó ban đầu được sử dụng bởi Điều tra dân số Hoa Kỳ vào năm 1880, 1900 và 1910. Lưu ý rằng SoundEx không hữu ích lắm cho các tên không phải tiếng Anh.

The12518_12533Mô -đun cung cấp hai chức năng để làm việc với mã soundex:

SoundEx (văn bản) Trả về văn bản

TheSoundExHàm chuyển đổi một tỷ lệ kèo bóng đá thành mã SoundEx của nó. Thekhác biệtHàm chuyển đổi hai tỷ lệ kèo bóng đá thành mã SoundEx của chúng và sau đó báo cáo số lượng vị trí mã phù hợp. Vì mã SoundEx có bốn ký tự, kết quả dao động từ 0 đến bốn, không có khớp và bốn ký tự là một trận đấu chính xác.tỷ lệ kèo bóng đá tựsẽ là một cái tên tốt hơn.)

Đây là một số ví dụ sử dụng:

Chọn SoundEx ('Hello World!');

F.16.2. Daitch-Mokotoff SoundEx#

Giống như hệ thống SoundEx gốc, Daitch-Mokotoff SoundEx khớp với các tên âm thanh tương tự bằng tỷ lệ kèo bóng đá chuyển đổi chúng thành cùng một mã. Tuy nhiên, Daitch-Mokotoff SoundEx hữu ích hơn đáng kể cho các tên không phải tiếng Anh so với hệ thống gốc.

  • Mã dựa trên sáu chữ cái có ý nghĩa đầu tiên chứ không phải bốn.

  • Một chữ cái hoặc kết hợp các bản đồ chữ cái thành mười mã có thể thay vì bảy.

  • Trong đó hai chữ cái liên tiếp có một âm thanh duy nhất, chúng được mã hóa như một số duy nhất.

  • Khi một chữ cái hoặc kết hợp các chữ cái có thể có âm thanh khác nhau, nhiều mã được phát ra để bao gồm tất cả các khả năng.

Hàm này tạo mã Daitch-Mokotoff SoundEx cho đầu tỷ lệ kèo bóng đáo của nó:

Daitch_mokotoff (Nguồnvăn bản) trả về văn bản []

Kết quả có thể chứa một hoặc nhiều mã tùy thuộc tỷ lệ kèo bóng đáo số lượng phát âm hợp lý, vì vậy nó được biểu diễn dưới dạng một mảng.

Vì mã âm thanh Daitch-Mokotoff chỉ bao gồm 6 chữ số,Nguồntốt nhất là một từ hoặc tên.

Đây là một số ví dụ:

Chọn Daitch_Mokotoff ('George');

Để khớp các tên đơn, các mảng văn bản được trả về có thể được khớp trực tiếp bằng tỷ lệ kèo bóng đá sử dụng&&Toán tử: Bất kỳ sự chồng chéo nào cũng có thể được coi là phù hợp. Chỉ số gin có thể được sử dụng để hiệu quả, xemPhần 64.4Và ví dụ này:

Tạo bảng S (văn bản nm);

Để lập chỉ mục và khớp với bất kỳ số lượng tên nào theo bất kỳ thứ tự nào, có thể sử dụng các tính năng tìm kiếm văn bản đầy đủ. Nhìn thấyChương 12Và ví dụ này:

17595_18680

Nếu mong muốn tránh tính toán lại mã soundex trong khi kiểm tra lại chỉ mục, có thể sử dụng một chỉ mục trên một cột riêng biệt thay vì chỉ mục trên biểu thức. Một cột được tạo được lưu trữ có thể được sử dụng cho việc này;Phần 5.4.

F.16.3. Levenshtein#

Hàm này tính toán khoảng cách Levenshtein giữa hai tỷ lệ kèo bóng đá:

levenshtein (văn bản nguồn, văn bản đích, ins_cost int, del_cost int, sub_cost int) trả về int int int

cả haiNguồnTargetcó thể là bất kỳ tỷ lệ kèo bóng đá không null nào, với tối đa 255 ký tự. Các tham số chi phí xác định mức độ tính phí cho việc chèn, xóa hoặc thay thế của ký tự tương ứng.

Levenshtein_less_equallà phiên bản tăng tốc của hàm Levenshtein để sử dụng khi chỉ có khoảng tỷ lệ kèo bóng đá nhỏ được quan tâm. Nếu khoảng tỷ lệ kèo bóng đá thực tế nhỏ hơn hoặc bằngMAX_D, sau đóLevenshtein_less_equalTrả về khoảng tỷ lệ kèo bóng đá chính xác; nếu không thì nó trả về một số giá trị lớn hơnMAX_D. Nếu nhưMAX_Dlà tiêu cực thì hành vi này giống nhưLevenshtein.

Ví dụ:

test =# chọn levenshtein ('gumbo', 'gambol');

F.16.4. Metaphone#

Metaphone, giống như SoundEx, dựa trên ý tưởng xây dựng mã đại diện cho một tỷ lệ kèo bóng đá đầu vào. Hai tỷ lệ kèo bóng đá sau đó được coi là tương tự nếu chúng có cùng mã.

Hàm này tính toán mã metaphone của tỷ lệ kèo bóng đá đầu vào:

metaphone (văn bản nguồn, max_output_length int) trả về văn bản

Nguồnphải là một tỷ lệ kèo bóng đá không null với tối đa 255 ký tự.MAX_OUTPUT_LEPTĐặt chiều dài tối đa của mã metaphone đầu ra; Nếu lâu hơn, đầu ra bị cắt theo chiều dài này.

Ví dụ:

test =# Chọn Metaphone ('Gumbo', 4);

F.16.5. Metaphone kép#

Hệ thống siêu hình đôi tính toán haiÂm thanh nhưKhăntỷ lệ kèo bóng đá cho tỷ lệ kèo bóng đá đầu vào đã cho - ATiểu họcHồivà mộtxen kẽ. Trong hầu hết các trường hợp, chúng giống nhau, nhưng đối với các tên không phải tiếng Anh, đặc biệt là chúng có thể hơi khác nhau, tùy thuộc vào tỷ lệ kèo bóng đá phát âm.

dmetaphone (văn bản nguồn) trả về văn bản

Không có giới hạn độ dài trên tỷ lệ kèo bóng đá đầu vào.

Ví dụ:

test =# chọn dmetaphone ('gumbo');

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính tỷ lệ kèo bóng đá, không khớpMẫu nàyĐể báo cáo vấn đề tài liệu.