Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: Tìm kiếm toàn văn trong Sql Server

  1. #1
    Ngày gia nhập
    08 2009
    Nơi ở
    C:\Documents and Settings\ME\My Documents\Visual Studio 2010
    Bài viết
    516

    Smile Tìm kiếm toàn văn trong Sql Server

    Tìm kiếm toàn văn (theo như chúng ta vẫn hiểu là tìm kiếm khi đầu vào là tiếng Việt không dấu/ có dấu cho kết quả tiếng Việt không dấu/ có dấu) trong Sql đã được một số bạn quan tâm thảo luận tại topic: Tìm kiếm dữ liệu tiếng việt có dấu trong sql như thế nào?

    Mình thấy cũng có nhiều người quan tâm đến vấn đề này, và để nhiều người đã có thể đã quên topic trên vì đã lâu ngày muốn tham khảo thêm nên mình tạo topic này chia sẻ vấn đề này cho mọi người (ai biết rồi thì thôi nhé) và mọi người thảo luận thêm.

    Để tìm kiếm toàn văn trong Sql, làm như sau:
    CÁCH LÀM:
    + Khi chúng ta tạo mới một Database (DB) thì thuộc tính Collation của DB mặc định là "Vietnamese_CI_AS". Theo đó, các cột của bảng có kiểu dữ liệu thuộc một trong các kiểu char, nchar, varchar, nvarchar, text, ntext cũng có thuộc tính Collation là "Vietnamese_CI_AS". (Như vậy, DB và các Table đều có thuộc tính Collation của riêng nó).
    Việc chúng là cần làm là thiết lập cho thuộc tính Collation của các cột của bảng cần tìm kiếm toàn văn một giá trị thích hợp. Ở đây mình chọn giá trị "SQL_Latin1_General_CP1_CI_AI".
    Trong SQL Server Management Studio, chọn bảng cần làm việc, nhấp phải chuột chọn Modify, tìm đến cột cần làm việc (tức cột sau này cần tìm kiếm toàn văn, ví dụ cột tên, cột địa chỉ, ...) bằng cách nhập chuột vào đó. Trong của sổ Column Properties tương ứng với cột chọn, tìm đến thuộc tính Collation, nó đang ở chế độ mặc định thì sẽ có dòng chữ "<database default>". Nhấp chuột vào nút ... bên phải, trong hộp thoại hiện ra, chọn Sql Collation thay vì Windows Collation. Trong combobox, chọn giá trị "SQL_Latin1_General_CP1_CI_AI" cho Sql Collation. Xong nhập OK để kết thúc. Công việc đã xong, các bạn hãy thử vài truy vấn để kiểm tra nhé.

    LƯU Ý:
    + Để nhẹ nhàng hơn, khỏi phải mất công tìm giá trị "SQL_Latin1_General_CP1_CI_AI" trong combobox cho thuộc tính Collation thì các bạn có thể làm như sau:
    - Trước hết, thiết lập thuộc tính Collation cho DB có giá trị "SQL_Latin1_General_CP1_CI_AI". Nhấp chuột phải vào DB, chọn Properties, trong hộp thoại Database Properties hiện ra, nhấp chuột vào Options ở bên trái hộp thoại, mục Collation hiện ra bên phải, chọn giá trị "SQL_Latin1_General_CP1_CI_AI" trong combobox, xong nhấp OK để kết thúc.
    - Tiếp theo, bây giờ vẫn phải vào thiết lập thuộc tính Collation cho các cột cần tìm kiếm toàn văn trong các bảng như trên. Tuy nhiên, trong hộp thoại Column Properties, các bạn không cần phải chọn Sql Collation, không phải tìm đến giá trị "SQL_Latin1_General_CP1_CI_AI" trong combobox nữa, mà các bạn chỉ cần nhập vào nút "Restore Default" là xong.

    LỜI KHUYÊN:
    + Nếu ngay từ ban đầu, khi mới tạo DB mà chưa có Table nào, nếu DB được thiết lập thuộc tính Collation có giá trị "SQL_Latin1_General_CP1_CI_AI" thì khi tạo các bảng, các cột (có kiểu dữ liệu thuộc một trong các kiểu đã nói ở trên) sẽ mặc định theo thuộc tính Collation của DB là "SQL_Latin1_General_CP1_CI_AI". Do đó, nếu xác định ứng dụng (kể cả software, website nói chung) có thể có sử dụng tìm kiếm toàn văn (mà thông thường là vậy) thì ngay từ khi tạo mới DB, hãy thiết lập thuộc tính Collation chó DB để sau này khỏi mất công thiết lập cho từng cột trong các bảng như vậy.

    P/: Mình đang hướng dẫn trên Sql Server 2005, trên các phiên bản khác có thể có sự khác biệt ít nhiều, các bạn để ý nhé.

  2. #2
    Ngày gia nhập
    04 2010
    Nơi ở
    Hà Nội
    Bài viết
    138

    Thế mà mình cứ phải tách từ khóa thành từ không dấu, có dấu rồi tìm kiếm
    thanks iamonlining nhé
    Thế giới thật rộng lớn

  3. #3
    Ngày gia nhập
    03 2009
    Bài viết
    12

    Cách của bạn rất hay nhưng mình thắc mắc là khi thiết lập như vậy liệu có ảnh hưởng gì đến các truy vấn khác không vậy? Nếu không ảnh hưởng đến các truy vấn khác thì cách này đúng là rất tối ưu, không phân biệt chữ hoa chữ thường, có dấu không dấu.

  4. #4
    Ngày gia nhập
    12 2011
    Bài viết
    2

    thật thú vị mình đang cần vào đây thấy luôn.
    cảm ơn tác giả nhé

  5. #5
    Ngày gia nhập
    08 2009
    Nơi ở
    C:\Documents and Settings\ME\My Documents\Visual Studio 2010
    Bài viết
    516

    Trích dẫn Nguyên bản được gửi bởi nguyenhoang1411 Xem bài viết
    Cách của bạn rất hay nhưng mình thắc mắc là khi thiết lập như vậy liệu có ảnh hưởng gì đến các truy vấn khác không vậy? Nếu không ảnh hưởng đến các truy vấn khác thì cách này đúng là rất tối ưu, không phân biệt chữ hoa chữ thường, có dấu không dấu.
    Khi đã thiết lập Collation cho DB thì mọi truy vấn vào DB đều tuân theo Collation của DB nên không ảnh hưởng gì hết.

  6. #6
    Ngày gia nhập
    04 2013
    Bài viết
    17

    Mặc định Tìm kiếm toàn văn trong Sql Server

    wow! tuyệt vời...
    trước đây toàn sử lý trên code + tạo thành 2 trường để sử lý.
    bây giờ thì đã ok!
    nhưng không biết access thì sao nhỉ?
    Tool: GeneratorPro2013
    Demo:http://youtu.be/UvSnpezhJVE
    Link tải: http://sdrv.ms/130BzGE
    Name: Tony Hung
    Sky:Tonyhung.ict
    Email:Tonyhung.ict@gmail.com

  7. #7
    Ngày gia nhập
    05 2011
    Nơi ở
    Hà Nội
    Bài viết
    26

    Thật tuyệt, mình đã mắc vấn đề này lâu rồi giờ đọc bài viết và đã làm theo hướng dẫn của bạn à đã thành công. Cảm ơn bạn nhiều.
    Nhận thiết kế website, phần mềm trên nền web sử dụng công nghệ .NET
    Liên hệ:
    Skype :. thanhhd90
    Gmail :. truongtienthanh90@gmail.com
    Website:. http://thietkeweb24.info

  8. #8
    Ngày gia nhập
    03 2012
    Bài viết
    1

    Mặc định Vậy mấy a cô e hỏi, lúc truy vấn trên các cột có fulltext mình sử dụng câu truy vấn như thế nào ạ ?

    Vậy mấy a cho e hỏi, lúc truy vấn trên các cột có fulltext mình sử dụng câu truy vấn như thế nào ạ ?
    Đã được chỉnh sửa lần cuối bởi nhatlinhit6 : 26-10-2013 lúc 10:25 PM. Lý do: sai chính tả

  9. #9
    Ngày gia nhập
    12 2010
    Bài viết
    99

    Bài viết hay quá , trước đây không biết toàn tách dấu rồi so sánh . Thank bạn nhé!

  10. #10
    Ngày gia nhập
    08 2011
    Bài viết
    1

    Mặc định Ai giúp mình hướng dẫn kích hoạt Full-text Index?

    Mình đang co bài tập về fulll text search nhưng khi chuột phải vào bảng đã tạo để tạo Full-text Index thì các chức năng trong đó đều bị ẩn. Mình không hiểu vì sao? các bạn giúp mình với nhé!

Các đề tài tương tự

  1. Algorithm Giải thuật tìm kiếm văn bản trong ASP.NET?
    Gửi bởi hip2412 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 19-08-2011, 01:44 PM
  2. tìm kiếm văn bản tiếng Việt trong C++?
    Gửi bởi lebac1010 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 29-03-2011, 06:14 PM
  3. Câu lệnh tìm kiếm nâng cao trong sql server 2000 với c#
    Gửi bởi nonamenolie trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 17
    Bài viết cuối: 25-05-2010, 07:16 PM
  4. tìm kiếm văn bản trong richtextbox?
    Gửi bởi madaca123 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 05-06-2009, 07:18 PM
  5. [Solved]tìm kiếm trong SQL server 2000
    Gửi bởi hackerhocyeu trong diễn đàn Thắc mắc đại cương Database & Reporting
    Trả lời: 1
    Bài viết cuối: 19-04-2008, 10:09 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn