2011-01-06 36 views
5

Tôi đã thiết lập chỉ mục văn bản đầy đủ trên một số bản ghi nhỏ trên 3 trường (đã thử kết hợp cả 3 trường và có cùng kết quả) và một số các từ trả lại kết quả tốt, nhưng một số từ như 'house' và 'australia' không (thú vị, 'australian' và 'home').Tìm kiếm toàn văn MySQL không hoạt động đối với một số từ như 'house'

Dường như hành vi kỳ quặc. Nếu tôi thêm "WITH QUERY EXPANSION", tôi nhận được kết quả, nhưng giờ đây chúng không phải là kết quả phù hợp nhất.

Bất kỳ ai cũng có ý tưởng về lý do này? Nếu không, tôi sẽ phải sử dụng các tìm kiếm LIKE, và tôi muốn có sự liên quan.

Trả lời

10

Nó có thể là một vài điều:

  • MySQL có một danh sách mặc định của 'ngăn chặn từ' không được bao gồm trong một tìm kiếm văn bản đầy đủ - http://dev.mysql.com/doc/refman/5.5/en/fulltext-stopwords.html. 'house' và 'australia' dường như không có trong danh sách đó, nhưng những từ khác bạn tìm kiếm có thể bị ảnh hưởng bởi nó.
  • Bất kỳ từ nào xuất hiện trong hơn 50% số hàng hoặc là 3 chữ cái hoặc có độ dài ít hơn trong cơ sở dữ liệu cũng được coi là từ dừng. Điều 50% đặc biệt dễ bị bắt nếu bạn chỉ đang thử nghiệm tìm kiếm toàn văn trên một bảng chỉ có một vài hàng.

Nếu bạn tìm kiếm Google cho "mysql stop words" bạn sẽ tìm thấy nhiều hơn về nó, vì nó là một trong những thứ bắt được rất nhiều người.

+0

Tôi tin điều này là chính xác. Tôi đã có vấn đề chính xác cùng*. +1 – karim79

Các vấn đề liên quan