3.3. Thực thi ngôn ngữ truy vấn trong eXist
3.3.2. Sự mở rộng ngôn ngữ truy vấn trong eXist
Đặc điểm Xpath chỉ định nghĩa giới hạn ít các hàm để tìm kiếm cho một xâu
đưa ra trong nôi dung ký tự của một nút. Đây là một điểm yếu nếu một người nào
đó muốn tìm qua tất cả các tài liệu chứa các tập văn bản lớn. Đối với nhiều kiểu tài liệu, các hàm chuẩn cung cấp sẽ không đưa ra các kết qủa thoả mãn. eXist
cung cấp 2 phép toàn truyền thống và một số hàm mở rộng để cung cấp khả năng truy cập tới nội dung fulltext của các nút. Ví dụ:
//SCENE[SPEECH[SPEAKER &= ’witch’ and near(LINE,‘fenny snake’]]
“&=“ là một toán tử tìm kiếm văn bản đặc biệt. Nó sẽ chọn các nút ngữ cảnh bao gồm toàn bộ các từ được tách nhau bởi khoảng trống ở bên phải đối số. Để tìm các nút chứa bất kỳ từ nào thì sử dụng phép “|=”. Thứ tự của các từ là không quan trọng. Cả hai toán tử này đều hỗ trợ các ký tự đại diện trong từ tìm kiếm.
Để tác động một thứ tự lên các từ tìm kiếm hàm near(node set, string, [distance]) chọn các nút trong tập nút mà có giá trị gần với đối số thứ hai nhất và theo đúng thứ tự. Để so sánh các mẫu xâu phức tạp, cú pháp biểu thức đường dẫn được hỗ
trợ qua các hàm bổ sung.
Toàn bộ việc mở rộng tìm kiếm fulltext sử dụng tệp chỉ số ngược “words.dbx”, tệp này ánh xạ chính xác các từ sang một danh sách có thứ tự của tài liệu và các định danh nút duy nhất. Do đó, trong khi các toán tử bằng cũng là các hàm chuẩn XPath như ràng buộc đòi hỏi eXist thực hiện duyệt đầy đủ trên nội dung của mỗi nút trong một tập nút ngữ cảnh, mở rộng tìm kiếm fulltext nhờ
cậy hoàn toàn vào các thông tin lưu trong chỉ số.