python - Flask-whooshsqlalchemyplus中文分词搜索问题
伊谢尔伦
伊谢尔伦 2017-04-18 10:06:25
0
2
882
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

répondre à tous(2)
刘奇

Si vous utilisez une base de données postgresql, vérifiez si l'encodage de votre base de données est UTF-8 ? Vous pouvez afficher les informations de la base de données via l dans le shell de la base de données :

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding  |   Collate   |    Ctype    |   Access privileges   
-----------+----------+-----------+-------------+-------------+-----------------------
 db1  | owner | UTF8      | en_US.UTF-8 | en_US.UTF-8 | =Tc/owner         +
           |          |           |             |             | owner=CTc/owner
 db2     | owner   | SQL_ASCII | C           | C           | =Tc/owner           +

Est-il possible de rechercher en chinois dans le shell de la base de données ? Peut être vérifié via le sql suivant :

SELECT to_tsvector('我们') @@ to_tsquery('我:*');

Le db1 ci-dessus est UTF-8, il prend donc en charge la recherche chinoise,

postgres=# \c db1
db1=#
db1=# SELECT to_tsvector('我们') @@ to_tsquery('我:*');
 ?column? 
----------
 t
(1 row)

db1=#

db2 est SQL_ASCII et ne prend pas en charge la recherche chinoise

db1=# \c db2
db2=#
db2=# SELECT to_tsvector('我们') @@ to_tsquery('我:*');
NOTICE:  text-search query contains only stop words or doesn't contain lexemes, ignored
 ?column? 
----------
 f
(1 row)

db2=#
Peter_Zhu

Vous pouvez vous référer à ceci : https://www.v2ex.com/t/274600...

J'ai déjà utilisé flask-whooshalchemy, mais l'effet de segmentation des mots chinois n'était pas bon. Ensuite, j'ai utilisé Jieba pour créer la table et l'index de segmentation de mots, puis whooshalchemy a recherché la table de segmentation de mots.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!