Tôi cần phải tìm kiếm trên nhiều cột từ hai bảng trong cơ sở dữ liệu của tôi bằng Tìm kiếm Toàn văn bản. Hai bảng được đề cập có các cột có liên quan toàn văn được lập chỉ mục.Sử dụng Tìm kiếm Toàn văn bản trong SQL Server 2008 trên nhiều bảng, cột
Lý do tôi chọn cho tìm kiếm văn bản đầy đủ: 1. Để có thể tìm kiếm từ có dấu dễ dàng (CAFE) 2. Để có thể để xếp hạng theo lời gần gũi vv 3. "Did ý anh là XXX? " chức năng
Đây là một cấu trúc bảng giả, để minh họa cho thách thức:
Table Book BookID Name (Full-text indexed) Notes (Full-text indexed) Table Shelf ShelfID BookID Table ShelfAuthor AuthorID ShelfID Table Author AuthorID Name (Full-text indexed)
tôi cần phải tìm kiếm trên danh sách, Sách Notes và Author Name.
Tôi biết trong hai cách để thực hiện điều này:
Sử dụng một văn bản đầy đủ Indexed Xem: Đây có thể là phương pháp ưa thích của tôi, nhưng tôi không thể làm điều này bởi vì đối với một cái nhìn để được toàn văn chỉ mục, nó cần phải được schemabound, không có bất kỳ tham gia bên ngoài, có một chỉ số duy nhất. Khung nhìn tôi sẽ cần để lấy dữ liệu của mình không đáp ứng các ràng buộc này (nó chứa nhiều bảng được nối khác mà tôi cần để lấy dữ liệu từ).
Sử dụng kết nối theo thủ tục được lưu trữ: Vấn đề với cách tiếp cận này là tôi cần có kết quả được sắp xếp theo thứ hạng. Nếu tôi đang thực hiện nhiều phép nối trên các bảng, SQL Server sẽ không tìm kiếm trên nhiều trường theo mặc định. Tôi có thể kết hợp hai truy vấn CONTAINS riêng lẻ trên hai bảng được nối kết, nhưng tôi không biết cách nào để trích xuất các xếp hạng kết hợp từ hai truy vấn tìm kiếm. Ví dụ: nếu tôi tìm kiếm 'Arthur', kết quả của cả truy vấn Sách và truy vấn Tác giả sẽ được xem xét và cân nhắc tương ứng.
Đối với # 1, nơi bạn nói bạn tham gia ... bạn có thực sự tham gia OUTER không? đó là một sản phẩm Descartes và tôi nghi ngờ bạn đang thực sự làm điều đó. Một bên trong hoặc trái/phải tham gia là tốt. –
Tôi không sử dụng OUTER JOIN cho bất kỳ bảng được hiển thị nào. Có các bảng khác mà tôi cần để LEFT OUTER JOIN, vì chúng có thể không có bất kỳ hàng FKed nào. –