在几秒钟内创建复杂的弹性搜索查询有关详细信息,请参阅文档
elasticsearchquerygenerator的Python项目详细描述
[]
弹性搜索查询生成器
什么是弹性搜索查询生成器?
- 在
当我使用弹性搜索时,我发现编写复杂的查询非常困难,因为大多数查询都是深层嵌套的
在 - 在
这就是我决定创建一个helper类的原因,它可以在几秒钟内生成复杂的弹性搜索查询
在 - 在
库可以用来生成复杂的聚合查询,地理位置查询(和|或|不)任何一组组合都是可能的
在 - 在
除了上面提到的所有内容之外,您还可以在几秒钟内生成自动完成查询
在 - 在
请参阅下面的示例,了解如何使用此模块。在
在 - 在
如果您有任何问题或建议,请发送电子邮件至shahsoumil519@gmail.com
在 - 在 在
文件:
- UML图
- 在
施工单位:
- 大小:查询应该返回多少个文档
- 可选名称为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开发。在
电子工程学士| 电气工程硕士| 计算机工程硕士
- 网址:https://soumilshah.herokuapp.com
- Github:https://github.com/soumilshah1995
- Linkedin:https://www.linkedin.com/in/shah-soumil/
- 博客:https://soumilshah1995.blogspot.com/
- Youtube:https://www.youtube.com/channel/UC_eOodxvwS_H7x2uLQa-svw?view_as=subscriber
- Facebook页面:https://www.facebook.com/soumilshah1995/
- 电子邮件:shahsoumil519@gmail.com
许可证
这个项目是在MIT许可下授权的-请参阅LICENSE.md文件了解详细信息
- 项目
标签: