Khi tìm kiếm đàn hồi lập chỉ mục một chuỗi theo mặc định, thường nó sẽ phân tách chúng thành mã thông báo, ví dụ: "Fox jump over the wall" sẽ được mã hóa thành từng từ riêng biệt là "Fox", "jump", "over" , "bức tường".
Vậy điều này sẽ làm gì? Nếu bạn tìm kiếm tài liệu bằng truy vấn Lucene, bạn có thể không nhận được chuỗi mà bạn muốn vì Elastic Search sẽ tự động tìm kiếm các từ được mã hóa thay vì toàn bộ chuỗi, do đó kết quả tìm kiếm của bạn sẽ bị ảnh hưởng nghiêm trọng.
Ví dụ: nếu bạn tìm kiếm "Nhảy qua tường", bạn sẽ không nhận được kết quả nào. Tìm kiếm "Fox" thay vào đó sẽ giúp bạn có được kết quả.
Các Phân tích API hoặc phân tích hạn bảo Elastic Tìm kiếm không tokenize chuỗi được lập chỉ mục, do đó bạn đúng cách có thể tìm kiếm cho các chuỗi chính xác, đó là đặc biệt hữu ích khi bạn muốn làm khía cạnh thống kê trên toàn bộ dây.
Bộ mã hóa chỉ cần mã hóa chuỗi thành các từ riêng lẻ và lưu trữ chúng trong Tìm kiếm đàn hồi. Như đã đề cập, bạn có thể truy vấn các mã thông báo này bằng cách sử dụng API tìm kiếm.
Bộ lọc tạo một tập hợp con kết quả được truy vấn trong điều kiện cụ thể mà bạn chỉ định, giúp bạn tách biệt những gì bạn cần từ những gì bạn không cần trong kết quả tìm kiếm của mình.
Nguồn
2012-06-08 07:16:03
Bạn có thể làm "Fox nhảy qua tường" và nó sẽ trả lại cho bạn kết quả phù hợp với tất cả các từ trong đó nếu bạn làm như truy vấn: 'client.prepareSearch(). SetQuery (QueryBuilders.matchQuery (NODE_PATH_TO_SEARCH, "Fox nhảy qua tường")) '. Đối với tôi, có vẻ như VÀ kết quả dựa trên các từ được chuyển trong chuỗi truy vấn – Adrian