Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Truy vấn hỗn hợp so với chỉ mục toàn văn

Tôi không tin rằng bạn sẽ gặp bất kỳ vấn đề nào, nếu tôi hiểu đúng câu hỏi của bạn. Tôi thường kết hợp toàn văn và b-cây với kết quả tuyệt vời. Khi tìm kiếm toàn văn được thực hiện, nó sẽ xem mỗi "thuật ngữ" được phân tách như một chỉ mục, giống như một cột được lập chỉ mục chỉ có một thuật ngữ (đưa ra hoặc lấy một số thống kê sql). Dù bằng cách nào, SQL phải tìm ra đường dẫn thực thi của nó. Tìm kiếm Toàn văn không ưu tiên so sánh các giá trị số nguyên / ngày - nhiều hơn để so khớp các chuỗi dữ liệu được phân tách.

Tôi sẽ tưởng tượng rằng bạn muốn tiếp tục sử dụng hiệu quả của khái niệm b-tree để làm lợi thế cho bạn. Đối với tôi, tìm kiếm chỉ mục danh mục toàn văn dường như là một tìm kiếm vòng vo hơn nhiều, mặc dù có lợi hơn nhiều trong các tình huống sử dụng "LIKE" để phân tích cú pháp / so sánh các chuỗi.

Những gì tôi làm là:

 SELECT * FROM MyTable
  WHERE CONTAINS(columnName, '"Toy Dog" OR "live animal"')
    AND start_date > ###;

(xem bài viết này trên msdn để biết thông tin cú pháp )

P.S. khi dữ liệu số nguyên lập chỉ mục toàn văn bản, hãy tắt danh sách dừng để những giá trị đó không bị bỏ qua trong lập chỉ mục danh mục.

Hy vọng bất kỳ điều đó sẽ giúp! (Không ai trả lời nên tôi nghĩ tôi sẽ đưa ra kinh nghiệm của mình)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để kiểm tra các bản sao trước khi chèn vào bảng khi chèn bằng cách chọn

  2. Cách đặt giá trị mặc định cho cột hiện có

  3. Chèn vào bảng với câu lệnh select cộng với cột bổ sung trong SQL Server 2008

  4. tạo động bảng #temp và sau đó được sử dụng để chèn dữ liệu

  5. Làm cách nào để xóa các hàng trùng lặp trong SQL Server 2008?