python+elasticsearch实现标签匹配计数操作

 更新时间:2024年04月23日 11:33:00   作者:P-ShineBeam  
这篇文章主要介绍了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"])

到此这篇关于python+elasticsearch实现标签匹配计数操作的文章就介绍到这了,更多相关python elasticsearch计数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python肯德尔系数相关性数据分析示例

    python肯德尔系数相关性数据分析示例

    这篇文章主要为大家介绍了python肯德尔系数相关性数据分析示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Python将多个excel文件合并为一个文件

    Python将多个excel文件合并为一个文件

    这篇文章主要为大家详细介绍了Python将多个excel文件合并为一个文件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Python中实现绘制动态旋转的星形

    Python中实现绘制动态旋转的星形

    结合matplotlib和numpy创建动态五角星动画,步骤包括安装库、编写代码和运行脚本,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-11-11
  • 使用Pytorch Geometric进行链接预测的实现代码

    使用Pytorch Geometric进行链接预测的实现代码

    PyTorch Geometric (PyG)是构建图神经网络模型和实验各种图卷积的主要工具,在本文中我们将通过链接预测来对其进行介绍,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2023-10-10
  • Python获取当前目录下所有文件的6种方法总结

    Python获取当前目录下所有文件的6种方法总结

    这篇文章主要给大家介绍了关于Python获取当前目录下所有文件的6种方法,要获取当前目录下的所有目录,可以使用Python内置的os模块中的listdir()函数和isdir()函数,需要的朋友可以参考下
    2023-08-08
  • 在Windows命令行中打开Python自带shell问题

    在Windows命令行中打开Python自带shell问题

    这篇文章主要介绍了在Windows命令行中打开Python自带shell问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Python3的进程和线程你了解吗

    Python3的进程和线程你了解吗

    这篇文章主要为大家详细介绍了Python3进程和线程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • python排序函数sort()与sorted()的区别

    python排序函数sort()与sorted()的区别

    这篇文章主要介绍了python排序函数sort()与sorted()的区别,需要的朋友可以参考下
    2018-09-09
  • 使用python批量读取word文档并整理关键信息到excel表格的实例

    使用python批量读取word文档并整理关键信息到excel表格的实例

    今天小编就为大家分享一篇使用python批量读取word文档并整理关键信息到excel表格的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • matplotlib绘制正余弦曲线图的实现

    matplotlib绘制正余弦曲线图的实现

    这篇文章主要介绍了matplotlib绘制正余弦曲线图的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02

最新评论