2009-06-21 27 views
7

Tôi có MySQL trên lưu trữ được chia sẻ. Có cách nào để thay đổi giá trị ft_min_word_len mà không có quyền truy cập của quản trị viên không?Tôi có thể thay đổi "ft_min_word_len" trên lưu trữ được chia sẻ không?

Tôi đã tìm thấy một cách giải quyết, trong đó mỗi từ có ít hơn 4 ký tự được bổ sung _ hoặc một số char khác, và điều tương tự cũng được thực hiện với mỗi từ khóa được tìm kiếm nhỏ hơn 4 ký tự.

Có cách nào tốt hơn hoặc sạch hơn cách để tìm kiếm toàn văn hoạt động cho các từ ngắn?

Trả lời

14

Thật không may, ft_min_word_len là biến hệ thống toàn cục và không thể được đặt động: xem MySQL's online docs. Thay đổi nó có nghĩa là xây dựng lại mọi chỉ số FULLTEXT xung quanh, btw, vì vậy bạn có thể thấy lý do tại sao họ không muốn người quản trị không gây rối với nó.

Tôi lo ngại cách giải quyết của bạn (hoặc điều gì đó hoàn toàn tương đương) là cách duy nhất để giải quyết vấn đề trong hoàn cảnh của bạn. Lấy làm tiếc! (Nhưng, khen ngợi cho suy nghĩ của nó!).

+0

* Nếu * bạn có đặc quyền quản trị viên: Tôi chưa thử nghiệm điều này, nhưng nếu dữ liệu của bạn tĩnh có lẽ bạn có thể đặt 'ft_min_word_len = 1' tạm thời, khởi động lại máy chủ, xây dựng cơ sở dữ liệu và chỉ mục của bạn, và khi bạn thực hiện đặt lại 'ft_min_word_len' và khởi động lại. Cơ sở dữ liệu của bạn sau đó sẽ được để lại với chỉ mục bạn muốn? – SK9

+0

Tôi sử dụng xampp, làm thế nào tôi có thể tìm thấy 'ft_min_word_len'? – Shafizadeh

+1

@Sajad, hãy xem http://stackoverflow.com/questions/3706182/xampp-mysql-setting-ft-min-word-len –

0

Tôi biết đây là một bài cũ nhưng nếu ai đó có quyền truy cập vỏ đến máy chủ (thậm chí là không root) và các công cụ mysql khách hàng mà bạn có thể làm

myisamchk --recover --ft_min_word_len=2 mytable.MYI 

Dù sao bạn propably phải sắp xếp này để chạy mỗi ngày cũng bao gồm các giá trị mới.

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