2009-02-27 27 views
5

Làm cách nào tôi có thể nhận ra khi nào người dùng đã bỏ lỡ một không gian khi nhập cụm từ tìm kiếm? Ví dụ: nếu người dùng nhập "usbcable", tôi muốn tìm kiếm "cáp usb". Tôi đang thực hiện tìm kiếm REGEX trong MySQL để khớp các từ đầy đủ.Nhận diện Thiếu Không gian

Tôi có một bảng với mọi thuật ngữ được sử dụng trong tìm kiếm, vì vậy tôi biết rằng "usb" và "cáp" là các điều khoản hợp lệ. Có cách nào để xây dựng một mệnh đề WHERE mà sẽ cho tôi tất cả các hàng mà thuật ngữ khớp với một phần của chuỗi?

Something như thế này:

SELECT st.term 
FROM SearchTerms st 
WHERE 'usbcable' LIKE '%' + st.term + '%' 

Hoặc bất kỳ khác ý tưởng?

+0

Liệu truy vấn mà không làm việc? –

+0

Vâng, tôi nên thử nghiệm nó trước khi tôi đăng. Truy vấn đó không hoạt động, nhưng với CONCAT nó, như vậy: WHERE 'usbcable' LIKE Concat ('%', st.term, '%'). Tôi nghĩ đây là cách đơn giản nhất và có liên quan nhất (cụ thể cho trang web của tôi), cách để đi. – Yisroel

Trả lời

5

Text Segmentation là một phần của Natural Language Processing, và là những gì bạn đang tìm kiếm trong ví dụ cụ thể này. Nó được sử dụng trong các công cụ tìm kiếm và trình kiểm tra chính tả, vì vậy bạn có thể có một số may mắn với mã nguồn ví dụ xem xét các trình kiểm tra chính tả nguồn mở và các công cụ tìm kiếm.

Kiểm tra lỗi chính tả có thể là mô hình chính xác để cân nhắc, vì trước tiên bạn cần phải biết đó có phải là một từ hợp pháp hay không trước khi cố gắng tách rời nó.

-Adam

0

văn trong các ý kiến, nhưng tôi nghĩ điều quan trọng để đưa lên như một câu trả lời:

Liệu truy vấn mà không làm việc? - Simon Buchan

Tiếp nối bởi:

Vâng, tôi nên đã thử nghiệm nó trước khi tôi đăng. truy vấn mà không làm việc, nhưng với một CONCAT nó, như vậy: WHERE NHƯ concat ('%', st.term, '%') 'usbcable'. Tôi nghĩ đây là đơn giản nhất, và phù hợp nhất (cụ thể cho trang web của tôi), cách để đi. - arnie0674

Chắc chắn xa dễ dàng hơn Phân khúc văn bản cho ứng dụng này ...

-Adam

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