在几秒钟内创建复杂的弹性搜索查询有关详细信息,请参阅文档

elasticsearchquerygenerator的Python项目详细描述



[license]

弹性搜索查询生成器

什么是弹性搜索查询生成器?

  • 当我使用弹性搜索时,我发现编写复杂的查询非常困难,因为大多数查询都是深层嵌套的

  • 这就是我决定创建一个helper类的原因,它可以在几秒钟内生成复杂的弹性搜索查询

  • 库可以用来生成复杂的聚合查询,地理位置查询(和|或|不)任何一组组合都是可能的

  • 除了上面提到的所有内容之外,您还可以在几秒钟内生成自动完成查询

  • 请参阅下面的示例,了解如何使用此模块。在

  • 如果您有任何问题或建议,请发送电子邮件至shahsoumil519@gmail.com

  • 了解更多信息:https://www.youtube.com/watch?v=C-JKcMM6IXE&t=2548s

文件:

  • UML图

Capture

  • 施工单位:

    • 大小:查询应该返回多少个文档
    • 可选名称为bucketa pass:
    • Source:基本上,您想要返回的字段需要一个列表参数Source=[“f1”,“f2”,…]
    • Min_score:用于筛选大型文档的平均阈值设置为0.5
  • 字段:

    • 这是您要搜索的列或字段
  • 提升:

    • 如果你想增加某个字段,传递一个整数值
  • 操作

    • 有四个主要的操作你可以通过 *应(或操作) *必须(和操作) *过滤器(过滤结果) *不得(非操作)
  • 分析仪:

    • 您可以指定各种分析器,如停止等

安装

pip install elasticsearchquerygenerator

使用

^{pr2}$
{"_source":[],"size":100,"min_score":0.5,"query":{"bool":{"must":[{"match_phrase":{"myfeild":{"query":"myvalue"}}},{"match_phrase":{"myfeild":{"query":"myvalue"}}},{"term":{"myfeild":"myvalue"}},{"exists":{"field":"comp feild"}},{"match":{"MMMMM":{"query":"myvalue"}}},{"match":{"MMMMM":{"query":"myvalue"}}},{"query_string":{"default_field":"DEFAULT","query":"X OR  Y"}}],"filter":[{"geo_distance":{"distance":"100mi","null":{"lat":"22","lon":"33"}}}],"should":[],"must_not":[]}},"aggs":{"FirstName":{"terms":{"field":"field1","order":{"_count":"desc"},"size":3}},"SecondName":{"terms":{"field":"field2","order":{"_count":"desc"},"size":3}},"ThirdName":{"terms":{"field":"field3","order":{"_count":"desc"},"size":3}},"my_distance":{"geo_distance":{"field":"AAAA","origin":"22,43","unit":"mi","ranges":[{"to":0},{"from":0,"to":25},{"from":25,"to":50},{"from":50,"to":75},{"from":75,"to":100},{"from":100}]}}}}

例2

fromelasticsearchquerygenerator.elasticsearchquerygeneratorimportElasticSearchQueryimportjsondefautocomplete():helper=ElasticSearchQuery(size=0,BucketName="MyBuckets")query=helper.autocomplete_1(field="title",value="n",size=25,sort='desc')print(json.dumps(query,indent=3))if__name__=="__main__":main(autocomplete
{"_source":[],"size":0,"min_score":0.5,"query":{"bool":{"must":[{"match_phrase_prefix":{"title":{"query":"n"}}}],"filter":[],"should":[],"must_not":[]}},"aggs":{"auto_complete":{"terms":{"field":"title","order":{"_count":"desc"},"size":25}}}}
我会增加更多的例子,让它越来越好

作者

苏米尔尼廷沙阿

  • 在构建可伸缩和高性能软件应用程序方面具有出色的经验,这些应用程序结合了物联网(IoT)的独特技能集、机器学习和Python全栈Web开发。在

电子工程学士| 电气工程硕士| 计算机工程硕士

paypal

许可证

这个项目是在MIT许可下授权的-请参阅LICENSE.md文件了解详细信息

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java希望直接扫描要上传到网页的文档   java JavaFX使对象可见,但不使用(忽略)点击   java LibGdx奇怪的纹理行为   java JavaFx ComboBox在第一次单击时未获得正确的值   api WebDav服务器库最好使用Java   java在Android中维护应用程序状态   java保存在Android中拖放RecyclerView后所做的更改我已经阅读了所有内容   无法读取项目中所需库tomcatembedwebsocket的java存档,或者该存档不是有效的ZIP文件   c#类在系统中有哪些关联?如何在UML中最好地表示它们?   java如何使用bazaar访问两台计算机上的同一文件夹   Java易失性与缓存一致性   java如何解决http11。校长:例外?   java liferaymavenplugin从maven Liferay 6.2.5(6.2 ga6)部署war   安卓的jar for java在哪里。木卫一。文件   java邻接矩阵中BFS的顺序是什么?   虚拟机如何从java启动linux虚拟机?   向DefaultListModel添加元素时java JList未更新   java JMSListener批注无法与REST服务一起使用   java DirectoryStream返回路径的顺序是什么?文件名,上次修改,文件大小?   java DropWizard Hibernate doc想说什么?