2010-10-22 51 views
10

Câu hỏi này đã được hỏi trước:Làm cách nào để triển khai tìm kiếm toàn văn bằng tiếng Trung trên PostgreSQL?

Postgresql full text search in postgresql - japanese, chinese, arabic

nhưng không có câu trả lời cho Trung Quốc như xa như tôi có thể nhìn thấy. Tôi đã xem qua wiki của OpenOffice và nó không có từ điển cho tiếng Trung.

Chỉnh sửa: Vì chúng tôi đã sử dụng thành công công cụ FTS nội bộ của PG cho tài liệu tiếng Anh, chúng tôi không muốn chuyển sang công cụ lập chỉ mục bên ngoài. Về cơ bản, những gì tôi đang tìm kiếm là cấu hình FTS của Trung Quốc, bao gồm cả trình phân tích cú pháp và từ điển cho tiếng Trung giản thể (Mandarin).

+0

Như chúng ta đã không thể tìm ra một giải pháp cho điều này (ngay cả với bounty tôi cung cấp), chúng tôi cuối cùng chuyển đến SQL Server, mà natively hỗ trợ Trung Quốc FTS. May mắn là ứng dụng của chúng tôi được thiết kế để trở thành nhà cung cấp dịch vụ khá thuyết phục, vì vậy đây không phải là vấn đề lớn đối với chúng tôi. –

Trả lời

3

Tôi biết đó là một câu hỏi cũ nhưng có một phần mở rộng Postgres cho Trung Quốc: https://github.com/amutu/zhparser/

+0

Tôi nhận được 'truy vấn tìm kiếm văn bản chỉ chứa các từ hoặc không chứa các từ lexemes, bỏ qua'. Xem https://stackoverflow.com/questions/41659909/fts-non-latin-text-search-query-contains-only-stop-words-or-doesnt-contain-lex – Growler

2

Lập chỉ mục dữ liệu của bạn với Solr, đây là máy chủ tìm kiếm doanh nghiệp nguồn mở được xây dựng trên đầu trang của Lucene.

Bạn có thể tìm thêm thông tin trên Solr đây:

http://lucene.apache.org/solr/

Một cuốn sách tốt về cách-to (với PDF download ngay lập tức) ở đây:

https://www.packtpub.com/solr-1-4-enterprise-search-server/book

Và hãy chắc chắn sử dụng mã thông báo của Trung Quốc, chẳng hạn như solr.ChineseTokenizerFactory vì tiếng Trung không phải là khoảng trắng được phân tách.

+0

Chúng ta cần sử dụng công cụ FTS được xây dựng trong Postgres. Chúng tôi đã triển khai thành công FTS tiếng Anh và muốn tiếp tục sử dụng cùng một hệ thống cho các tài liệu tiếng Trung. –

+1

Ồ, tôi hiểu rồi. Vâng, sau đó câu trả lời của tôi không hữu ích cho bạn. Tôi thấy rõ/chỉnh sửa của bạn về câu hỏi kể từ bài đăng gốc của bạn. Tôi không chắc dòng thời gian của bạn sẽ chứa những gì, nhưng các giải pháp Solr là nguồn mở. Bạn * có thể * có thể mượn từ ChineseTokenizerFactory - logic của nó khắc phục được vấn đề cố hữu như tôi hiểu, ngôn ngữ không phải là khoảng trắng bị xóa. Nhưng điêu tôt đẹp nhât se đên vơi bạn. –

3

Tôi vừa triển khai giải pháp FTS của Trung Quốc trong PostgreSQL. Tôi đã làm điều đó bằng cách tạo các thẻ NGRAM từ đầu vào của Trung Quốc và tạo các tsvector cần thiết bằng cách sử dụng một hàm được nhúng (trong trường hợp của tôi, tôi đã sử dụng plpythonu). Nó hoạt động rất tốt (ồ ạt thích hợp hơn để di chuyển đến SQL Server !!!).

+3

Bạn có thể chia sẻ mã của mình không? – Evgeny

+0

có, vui lòng làm! –

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