Lucene - Lập trình truy vấn
Chúng ta đã thấy trong chương trước Lucene - Search Operation, Lucene sử dụng IndexSearcher để thực hiện tìm kiếm và nó sử dụng đối tượng Truy vấn được tạo bởi QueryParser làm đầu vào. Trong chương này, chúng ta sẽ thảo luận về các loại đối tượng Truy vấn khác nhau và các cách khác nhau để tạo chúng theo chương trình. Tạo các loại đối tượng Truy vấn khác nhau cho phép kiểm soát loại tìm kiếm được thực hiện.
Hãy xem xét trường hợp của Tìm kiếm nâng cao, được cung cấp bởi nhiều ứng dụng trong đó người dùng được cung cấp nhiều tùy chọn để giới hạn kết quả tìm kiếm. Bằng cách lập trình truy vấn, chúng ta có thể đạt được điều tương tự rất dễ dàng.
Sau đây là danh sách các loại Truy vấn mà chúng ta sẽ thảo luận trong khóa học.
Không. | Lớp & Mô tả |
---|---|
1 | TermQuery Lớp này hoạt động như một thành phần cốt lõi tạo / cập nhật các chỉ mục trong quá trình lập chỉ mục. |
2 | TermRangeQuery TermRangeQuery được sử dụng khi một loạt các thuật ngữ văn bản được tìm kiếm. |
3 | PrefixQuery PrefixQuery được sử dụng để so khớp các tài liệu có chỉ mục bắt đầu bằng một chuỗi được chỉ định. |
4 | BooleanQuery BooleanQuery được sử dụng để tìm kiếm tài liệu là kết quả của nhiều truy vấn bằng cách sử dụng AND, OR hoặc là NOT các toán tử. |
5 | PhraseQuery Truy vấn cụm từ được sử dụng để tìm kiếm tài liệu có chứa một chuỗi thuật ngữ cụ thể. |
6 | WildCardQuery WildcardQuery được sử dụng để tìm kiếm tài liệu bằng các ký tự đại diện như '*' cho bất kỳ chuỗi ký tự nào,? khớp với một ký tự duy nhất. |
7 | FuzzyQuery FuzzyQuery được sử dụng để tìm kiếm tài liệu bằng cách sử dụng triển khai mờ là một tìm kiếm gần đúng dựa trên thuật toán chỉnh sửa khoảng cách. |
số 8 | MatchAllDocsQuery MatchAllDocsQuery như tên cho thấy khớp với tất cả các tài liệu. |