2012-06-06 9 views
5

Tôi đang đánh giá Tìm kiếm đàn hồi cho khách hàng. Tôi đã bắt đầu chơi với API và tạo thành công một chỉ mục và thêm tài liệu vào tìm kiếm. Lý do chính để sử dụng Tìm kiếm Đàn hồi là nó cung cấp chức năng khía cạnh.Máy phân tích và khía cạnh tìm kiếm đàn hồi

Tôi đang gặp sự cố khi hiểu Trình phân tích, Bộ mã hóa và Bộ lọc và cách chúng phù hợp với các khía cạnh. Tôi muốn có thể sử dụng từ khóa, ngày, cụm từ tìm kiếm, v.v ... làm khía cạnh của tôi.

Tôi làm cách nào để kết hợp các Trình phân tích vào tìm kiếm của mình và làm cách nào tôi có thể sử dụng nó với các khía cạnh?

Trả lời

9

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.

+0

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