2012-09-16 34 views
9

Tôi đang chỉ định fuzzy_prefix_length trong chuỗi truy vấn, nhưng tìm kiếm "tes" không kéo lên các bài đăng có tiêu đề "test" ... bất kỳ ý tưởng nào tôi đang làm sai?Độ mờ tìm kiếm đàn hồi trong query_string

đây là chuỗi truy vấn thiết lập của tôi

"query" : { 
    "query_string" : { 
    "query" : the-query-string-goes-here, 
    "default_operator" : "AND", 
    "fuzzy_prefix_length" : 3, 
    } 
} 

Trả lời

13

Bạn đang có, có lẽ, mất tích "mờ" nhà điều hành vào cuối truy vấn. Hãy thử điều này:

"query" : { 
    "query_string" : { 
    "query" : "tes~", 
    "default_operator" : "AND", 
    "fuzzy_prefix_length" : 3, 
    } 
} 
+0

Ahh tôi thấy ... vài câu hỏi nếu bạn không nhớ ... Tôi đã nghe các truy vấn ký tự đại diện chậm hơn mức trung bình và không chia tỷ lệ. Bất kỳ mối quan tâm tương tự với nhà điều hành này? Ngoài ra, ngay bây giờ tìm kiếm "tes" sẽ kéo lên một bài đăng có tiêu đề "kiểm tra" nhưng tìm kiếm "est" sẽ không ... có cách nào để làm điều này ... hay tôi đang phản ứng quá mức? – concept47

+1

"est" không trả lại bất kỳ kết quả nào vì bạn đã chỉ định không khác fuzzy_prefix_length. Fuzzy_prefix_length đặt số ký tự ở đầu cụm từ phải khớp. Zero fuzzy_prefix_length sẽ yêu cầu elasticsearch để mờ khớp với tất cả các từ trong từ điển đến thuật ngữ trong truy vấn của bạn. Bằng cách chỉ định fuzzy_prefix_length khác không, bạn có thể giới hạn đáng kể số lượng các thuật ngữ để kiểm tra và cải thiện hiệu suất. Như bạn đã đề cập, nó hơi giống với các truy vấn thẻ hoang dã, ngoại trừ thuật toán khớp thuật ngữ phức tạp hơn trong trường hợp toán tử mờ. – imotov

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