30/09/2018, 18:56
Tìm Kiếm Tiếng Việt Có Dấu, Không Dấu Trong Lucene
Chào các anh, chị, hiện em đang có nhu cầu tìm kiếm tiếng việt có dấu, không dấu trong Lucene. Nhưng chưa tìm được cách. Mong các anh chị có hướng giải quyết hướng dẫn lại cho em. Cảm ơn các anh chị.
Bài liên quan
Có hai phương án , cách đơn giản là bạn chuyển tiếng việt có dấu sang không dấu và tìm kiếm trên chuỗi này, điểm bất lợi là nó ra quá nhiều kết quả mà người dùng không cần ví dụ tìm Nam thì nó ra cả nảm,nám,nàm ,…
Nên thường áp dụng là chuyển ra mã UNICODE rồi bạn so khớp trên chuỗi này là ổn nhất, bạn có thể áp dụng các thuật toán so khớp như KMP để tìm rồi áp dụng thuật toán về xác suất kết quả cao nhất cho từ khóa nữa là ổn.
Cách unicode anh có ví dụ về phần này không anh? Nếu có anh chia sẻ cho e với.
Em tham khảo theo các link ảnh gửi nhé , còn riêng Java có thể set Charset cho chuỗi rồi so khớp theo các thư viện có sẵn của Java cũng được nhé . em tra google là có ngay , dưới link dưới cũng có đề cập đến
https://docs.oracle.com/javase/tutorial/i18n/text/string.html
How to convert a string with Unicode encoding to a string of letters
PS: cách của anh là cách bình thường hay dùng thôi , em dùng Apache Lucene thì có những thư viện hỗ trợ rất tốt em nên tra cứu tìm hiểu thêm nhé , có cả phần tìm kiếm trên File nữa ^^~, Chúc em học tốt
http://www.programcreek.com/java-api-examples/index.php?api=org.apache.lucene.util.UnicodeUtil