2010-10-22 14 views
10

Cette question a été posée:Comment implémenter la recherche en texte intégral en chinois sur PostgreSQL?

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

, mais il n'y a pas de réponse pour le chinois, autant que je peux voir. J'ai regardé le wiki d'OpenOffice, et il n'y a pas de dictionnaire pour le chinois.

Édition: Comme nous utilisons déjà avec succès le moteur FTS interne de PG pour les documents en anglais, nous ne voulons pas passer à un moteur d'indexation externe. Fondamentalement, ce que je recherche est une configuration FTS chinoise, y compris l'analyseur et les dictionnaires pour le chinois simplifié (mandarin).

+0

Comme nous avons pu trouver une solution pour cela (même avec la générosité je lui ai offert) nous avons finalement déménagé à SQL Server, qui supporte nativement FTS chinois. Heureusement, notre application a été conçue pour être assez agnostique, donc ce n'était pas un gros problème pour nous. –

Répondre

3

Je sais qu'il est une vieille question, mais il y a une extension Postgres pour le chinois: https://github.com/amutu/zhparser/

+0

Je reçois 'requête de recherche de texte contient uniquement des mots d'arrêt ou ne contient pas les problèmes lexemes, ignorés'. Voir https://stackoverflow.com/questions/41659909/fts-non-latin-text-search-query-contains-only-stop-words-or-doesnt-contain-lex – Growler

2

Indexez vos données avec Solr, c'est un serveur de recherche d'entreprise open source basé sur Lucene.

Vous pouvez trouver plus d'informations sur Solr ici:

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

Un bon livre sur la façon à (avec PDF télécharger immédiatement) ici:

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

Et assurez-vous utilisez un tokenizer chinois, tel que solr.ChineseTokenizerFactory car le chinois n'est pas délimité par des espaces.

+0

Nous devons utiliser le moteur FTS intégré à Postgres. Nous avons déjà implémenté avec succès le FTS en anglais, et nous souhaitons continuer à utiliser le même système pour les documents chinois. –

+1

Oh, je vois. Eh bien, alors ma réponse ne vous est pas utile. Je vois votre clarification/modifier sur la question depuis votre message original. Je ne suis pas sûr de ce que votre calendrier va accueillir, mais les solutions Solr sont open source. Vous * pouvez * être en mesure d'emprunter à la ChineseTokenizerFactory - sa logique surmonte le problème inhérent tel que je le comprends, que la langue n'est pas un espace délimité. Bonne chance à vous. –

3

Je viens d'implémenter une solution FTS chinoise dans PostgreSQL. Je l'ai fait en créant des jetons NGRAM à partir de l'entrée chinoise, et en créant les tsvector nécessaires en utilisant une fonction intégrée (dans mon cas, j'ai utilisé plpythonu). Cela fonctionne très bien (massivement préférable de passer à SQL Server !!!).

+3

Pouvez-vous partager votre code s'il vous plaît? – Evgeny

+0

oui, s'il vous plaît faire! –