Bạn thường có chuỗi phân tích tương tự ở cả thời gian chỉ mục và thời gian truy vấn. Tương tự không có nghĩa là giống nhau, nhưng thường là cách bạn lập chỉ mục tài liệu phản ánh cách bạn truy vấn chúng.
Ví dụ ngrams là một sự phù hợp thực sự tốt, vì đó là một trong những lý do chính tại sao bạn sẽ sử dụng các trình phân tích khác nhau tại chỉ mục và thời gian truy vấn.
Đối với các trận đấu một phần bạn chỉ với ngrams cạnh, vì vậy mà "elasticsearch" trở thành (với mingram 3 và maxgram 20):
"ela", "elas", "ELAST", "elasti", "đàn hồi "," elastics "," đàn hồi "," elasticsea "," elasticsear "," eleasticsearc "và" elasticsearch "
Bây giờ hãy truy vấn trường đã tạo. Nếu chúng tôi truy vấn cụm từ "co giãn" có một kết quả phù hợp và chúng tôi sẽ lấy lại kết quả mong đợi. Về cơ bản, chúng tôi đã trở thành những gì chúng tôi gọi ở trên một phần khớp chính xác, với những gì chúng tôi đã lập chỉ mục. Không cần phải áp dụng ngram vào truy vấn. Nếu chúng tôi đã làm chúng tôi sẽ truy vấn cho tất cả các điều khoản sau đây:
"ela", "elas", "ELAST", "elasti" và "đàn hồi"
Điều đó sẽ làm cho cách truy vấn phức tạp hơn và có thể dẫn để có kết quả lạ. Giả sử bạn lập chỉ mục cụm từ "đã trôi qua" trong một tài liệu khác, cùng một trường. Bạn sẽ có ngrams sau:
"ela", "ELAP", "elaps", "trôi qua", "trôi"
Nếu bạn tìm kiếm cho "co giãn" và làm cho ngrams với truy vấn, thuật ngữ "ela" sẽ khớp với tài liệu thứ hai này, do đó bạn sẽ lấy lại nó cùng với tài liệu đầu tiên, mặc dù không có thuật ngữ nào chứa toàn bộ thuật ngữ "đàn hồi" mà bạn đang tìm kiếm.
Tôi khuyên bạn nên xem analyze api để chơi xung quanh với trình phân tích khác và kết quả khác nhau của chúng.
Tôi có thể biết câu trả lời của tôi có làm rõ hơn cho bạn không? – javanna
Liên kết ở trên cùng bị hỏng – Artem