Heim > Fragen und Antworten > Hauptteil
怪我咯2017-04-18 10:08:25
如果用的是 postgresql 数据库的话,检查一下你的数据库的编码是 UTF-8
吗?可以在数据库的 shell 中通过 \l 查看数据库信息:
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 +
数据库 shell 中可以进行中文搜索不?可以通过下面的 sql 检查:
SELECT to_tsvector('我们') @@ to_tsquery('我:*');
上面 db1 是 UTF-8 所以支持中文搜索,
postgres=# \c db1
db1=#
db1=# SELECT to_tsvector('我们') @@ to_tsquery('我:*');
?column?
----------
t
(1 row)
db1=#
db2 是 SQL_ASCII 不支持中文搜索
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=#
天蓬老师2017-04-18 10:08:25
你可以参考一下这个: https://www.v2ex.com/t/274600...
我之前用的flask-whooshalchemy,中文分词效果也不好, 然后我用结巴jieba做了分词表和索引,然后whooshalchemy搜分词表. 效果还行.