搜尋

首頁  >  問答  >  主體

python - Flask-whooshsqlalchemyplus中文分词搜索问题

伊谢尔伦伊谢尔伦2807 天前946

全部回覆(2)我來回復

  • 怪我咯

    怪我咯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=#

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:08:25

    你可以參考一下這個: https://www.v2ex.com/t/274600...

    我之前用的flask-whooshalchemy,中文分詞效果也不好, 然後我用結巴jieba做了分詞表和索引,然後whooshalchemy搜分詞表. 效果還行.

    回覆
    0
  • 取消回覆