跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Python whoosh 如何优化加速
未分類
6 9 月 2020

Python whoosh 如何优化加速

Python whoosh 如何优化加速

資深大佬 : lixuda 0

第一次使用 whoosh 数据量 300 万条,索引后 1.5G 文件

根据文档查询,时间经常需要 7 秒以上,问问大神如何加速优化下?感谢

    ix = open_dir("indexdir")     with ix.searcher() as searcher:         myquery = Term("subject", "关键词")         results = searcher.search(myquery,limit=10)         for result1 in results:             print(dict(result1))          

大佬有話說 (20)

  • 資深大佬 : JasperYanky

    上 es

  • 資深大佬 : wzw

    我是自己写,全部放内存,用 fastapi

  • 主 資深大佬 : lixuda

    @wzw 能参考下吗?
    小白用户,放内存怎么写?

  • 資深大佬 : wzw

    @lixuda #3 你看看 expiringdict 我这个方法也有不好的地方, 好的地方是 快!

  • 資深大佬 : sylvos

    expiringdict 怎么用,有多快

  • 主 資深大佬 : lixuda

    @wzw https://github.com/mailgun/expiringdict 这个?字典缓存?能否再详细点,非常感谢

  • 資深大佬 : zhuangzhuang1988

    pypy??
    whoosh 反正是纯 python 的.

  • 主 資深大佬 : lixuda

    @zhuangzhuang1988 主要是想确认,是我使用的不对,还是本来就是这么慢。

  • 資深大佬 : nooper

    2016 那都不维护了,你用它干啥。

  • 主 資深大佬 : lixuda

    @nooper 图它简单方便

  • 資深大佬 : nonduality

    或许你可以看下 whoosh 的索引数据结构,然后把它改为使用 diskcache 或 redis 做缓存后端。

  • 資深大佬 : nonduality

    如果你在 Django 下使用 Whoosh,可以试下 Haystack (改起来应该很快),看是不是也这么慢,是否存在不恰当使用的地方。

    如果还是很慢,但又不喜欢 ES 太重,可以考虑用 Xapian 做引擎,不过它对中文分词的支持会有点麻烦,知道怎么搞的话麻烦告诉下我。

  • 主 資深大佬 : lixuda

    @nonduality 现在用 flask+whoosh,目前测试下来,20 万条在 1-3 秒,200 万,就 7 秒以上

  • 資深大佬 : nonduality

    @lixuda Whoosh 有个支持 GAE blobstore 的索引后端,原则上在它基础上改出一个支持 Diskcache 后端的的不太难( Diskcache 很不错,用磁盘做缓存,速度跟 redis 相当)

  • 資深大佬 : nonduality

    @lixuda 经过搜索,发现有篇文章「用 xapian 跟 mmseg 实现中文搜索」的方案很好

    Xapian 比 Whoosh 快 4 倍到 60 倍,上亿条数据几秒内就能搞定,建议你试试

  • 資深大佬 : yucongo

    elasticsearch 吧,秒搜,也就 1G 硬盘需求

  • 資深大佬 : nonduality

    我已经改好出来一个基于 xapian 的搜索引擎,速度确实快很多。

  • 主 資深大佬 : lixuda

    @nonduality 能否分享下?

  • 資深大佬 : nonduality

    @lixuda 我的是配合 django haystack 的 xapian 后端。你可以根据「用 xapian 跟 mmseg 实现中文搜索」这篇文章改,我用的是 jieba 分词,用起来还比较方便。

  • 資深大佬 : mcds

    时间应该都花在 open_dir 上了吧?把它做成 web 服务常驻内存就好,我现在索引文件大概在 700m 左右,查询时间 0.1s 左右

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具