Tôi đang sử dụng kết hợp mờ trong dự án của tôi chủ yếu để tìm lỗi chính tả và cách viết khác nhau của cùng tên. Tôi cần phải hiểu chính xác cách kết hợp mờ của công cụ tìm kiếm đàn hồi và cách nó sử dụng 2 thông số được đề cập trong tiêu đề.elasticsearch fuzzy matching max_expansions & min_similarity
Khi tôi hiểu được min_similarity là phần trăm theo đó chuỗi được truy vấn khớp với chuỗi trong cơ sở dữ liệu. Tôi không thể tìm thấy mô tả chính xác về cách tính giá trị này.
max_expansions như tôi hiểu là khoảng cách Levenshtein mà tìm kiếm sẽ được thực thi. Nếu đây thực sự là khoảng cách Levenshtein thì nó sẽ là giải pháp lý tưởng cho tôi. Dù sao, nó không làm việc ví dụ tôi có từ "Samvel"
queryStr max_expansions matches?
samvel 0 Should not be 0. error (but levenshtein distance can be 0!)
samvel 1 Yes
samvvel 1 Yes
samvvell 1 Yes (but it shouldn't have)
samvelll 1 Yes (but it shouldn't have)
saamvelll 1 No (but for some weird reason it matches with Samvelian)
saamvelll anything bigger than 1 No
Các tài liệu nói điều gì đó tôi thực sự không hiểu:
Add max_expansions to the fuzzy query allowing to control the maximum number
of terms to match. Default to unbounded (or bounded by the max clause count in
boolean query).
Vì vậy, có thể hài lòng bất cứ ai giải thích cho tôi như thế nào một cách chính xác các thông số ảnh hưởng đến kết quả tìm kiếm.
ah, sau đó max_expansions và min_similarity nên được sử dụng cùng nhau. vì vậy giới hạn khoảng cách thực tế được thực hiện bởi 'min_similarity' và' max_expansions' hoạt động giống như mệnh đề 'LIMIT' của MySQL? Nó chỉ giới hạn số lượng kết quả tiềm năng? –
có, nó hoạt động giống như mệnh đề 'LIMIT', không phải trên truy vấn cuối cùng được chạy, nhưng trên truy vấn tạm thời được sử dụng để tìm danh sách thuật ngữ tìm kiếm trong truy vấn cuối cùng – DrTech
Cảm ơn rất nhiều :) điều này đã giúp rất nhiều :) –