当前位置: 首页 > news >正文

python借助elasticsearch实现标签匹配计数

给定一组标签 [{“tag_id”: “1”, “value”: “西瓜”}, {“tag_id”: “1”, “value”: “苹果”}],我想精准匹配到现有的标签库中存在的标签并记录匹配成功的数量。

标签id(tag_id)标签名(tag_name)标签值(tag_name )
1水果西瓜
1水果苹果
1水果橙子
2动物老虎

这个步骤需要sql中的and操作,即:

es中的must条件

{"query": {"bool": {"must": [{"term": {"条件1":  "ok"}},{"term": {"条件2":  123}}]}}
}

要同时满足条件1,条件2这个查询才会有结果。里面的term表示精准查询。

这个步骤需要sql中的or操作,即:

es中的should条件

{"query": {"bool": {"should": [{"match": {"条件1": "ok"}},{"match": {"条件2": "666"}}]}}
}

满足条件1,条件2任意一个查询都会有结果。里面的match表示模糊查询。

查询

我需要查询给定这组标签 [{“tag_id”: “1”, “value”: “西瓜”}, {“tag_id”: “1”, “value”: “苹果”}],在现有的标签库出现的次数,这既需要tag_id和value的and关系,又需要外层的or关系,查询的语句如下

    
# 执行查询
query_terms = [{"tag_id": "1", "value": "西瓜"}, {"tag_id": "1", "value": "苹果"}]
query = {"query": {"bool": {"should": [{"bool": {"must": [{"term": {"value":  term['value']}},{"term": {"tag_id":  term['tag_id']}}]}} for term in query_terms]}}
}

查库结果


# 执行查询并输出结果
search_result = es.search(index=index_name, body=query)
num_matches = search_result["hits"]["total"]["value"]  
print(num_matches)if search_result["hits"]["total"]["value"] == 0:print("没有匹配的结果。查询条件:", query_terms)
else:print("查询结果:")for hit in search_result["hits"]["hits"]:print("ID:", hit["_id"], "Score:", hit["_score"], "Data:", hit["_source"])
http://www.lryc.cn/news/340339.html

相关文章:

  • Yolo-world+Python-OpenCV之摄像头视频实时目标检测
  • vue-treeselect 的基本使用
  • Vue(二)
  • Python基于深度学习的车辆特征分析系统
  • 推理还原的干货
  • 【Redis 神秘大陆】006 灾备方案
  • 【Java基础】17.异常处理
  • 【python】flask结合SQLAlchemy,在视图函数中实现对数据库的增删改查
  • APIGateway的认证
  • MacOS Github Push项目 精简版步骤
  • Eclipse的基本使用讲解(建项目,建包,建类,写代码(基本语法))新手入门必备
  • 3D模型处理的并行化
  • 盲人安全导航技巧:科技赋能让出行更自如
  • 问,由于java存在性能上,以及部分功能上的缺点,请问如何正确使用C,C++,Go,这三个语言,提升Java Web项目的性能?
  • 【信号与系统 - 9】傅里叶变换的性质习题
  • C#探索之路基础夯实篇(5):语法糖概念解析
  • SeaTunnel 与 DataX 、Sqoop、Flume、Flink CDC 对比
  • 深入理解汇编:平栈、CALL和RET指令详解
  • DP4 最小花费爬楼梯
  • OpenXR API概览与核心组件解析
  • 安装指定版本的ant-design-vue和指定版本的@ant-design/icons-vue 图标组件包
  • Zynq7000系列中的休眠模式
  • 在redhat7/8平台上部署ELK7.17.18的技术方案
  • (Chat For Al,创新Al,汇语Al助手,AiTab新标签,万能助手,LLaVA)分享6个好用的ChatGPT
  • MySQL-锁篇
  • 滤波器笔记(杂乱)
  • 【ARFoundation自学01】搭建AR框架,检测平面点击位置克隆物体
  • .Net ajax 接收参数
  • 智能零售:引领购物新时代
  • 【AIGC】AIGC在虚拟数字人中的应用:塑造未来互动体验的革新力量