V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Mrkon
V2EX  ›  Python

elasticsearch 批量检索问题

  •  
  •   Mrkon · 2018-11-30 15:28:42 +08:00 · 2437 次点击
    这是一个创建于 2221 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题:
    1.通过 id 查找可以使用 mget
    2.通过数据批量查找可以使用 msearch,但是效率较低

    目前需要通过数据批量查找,有没有什么更好的方式,求解答。
    第 1 条附言  ·  2018-11-30 17:05:39 +08:00
    解决办法,使用 复合查询 + 过滤器
    8 条回复    2018-12-02 11:52:46 +08:00
    DawN1ng
        1
    DawN1ng  
       2018-11-30 16:05:05 +08:00
    bulk 啊
    Mrkon
        2
    Mrkon  
    OP
       2018-11-30 16:16:17 +08:00
    @DawN1ng bulk 涉及查询了吗?如何使用呢?我没有找到啊
    lyc1116
        3
    lyc1116  
       2018-11-30 17:45:05 +08:00   ❤️ 1
    少量用 fq, 另外排序不要带 score。
    量大可以写个插件在 querypaser 里拼 termsquery 再包一层 filterquery。
    量再大就要用黑科技了。
    Mrkon
        4
    Mrkon  
    OP
       2018-12-01 11:45:32 +08:00
    @lyc1116 感谢大神,能多指点一下吗?检索目前因为需要对 score 排序,还得聚合与高亮,效率极低。
    Mrkon
        5
    Mrkon  
    OP
       2018-12-01 11:47:23 +08:00
    @lyc1116 我很多查询都是 fq,都可以改成写插件的方式吗?
    Nick2VIPUser
        6
    Nick2VIPUser  
       2018-12-01 12:00:51 +08:00
    ES 每隔一段时间查询总是很慢,有遇到过的大佬吗?
    Mrkon
        7
    Mrkon  
    OP
       2018-12-01 12:07:14 +08:00   ❤️ 1
    @Nick2VIPUser 如果是重复查询的话,有可能是缓存问题
    lyc1116
        8
    lyc1116  
       2018-12-02 11:52:46 +08:00
    @Mrkon 索引不怎么变的话可以考虑在 ES 前加 HTTP 缓存,facet 字段最好启用 docvalues
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   881 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:20 · PVG 04:20 · LAX 12:20 · JFK 15:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.