文章目录

  • 概述
  • 官网
  • 示例
    • 模拟:文件系统数据构造
    • 测试path_hierarchy分词
    • 需求一: 查找一份,内容包括ES,在/workspace/workspace/projects/helloworld这个目录下的文件
    • 需求二: 搜索/workspace目录下,内容包含ES的所有的文件


概述

继续跟中华石杉老师学习ES,第56篇

课程地址: https://www.roncoo.com/view/55


官网

简言之,就是对类似文件系统这种的有多层级关系的数据进行分词

Path Hierarchy Tokenizer:戳这里

Path Hierarchy Tokenizer Examples:戳这里


示例

模拟:文件系统数据构造


PUT /filesystem
{"settings": {"analysis": {"analyzer": {"paths": { "tokenizer": "path_hierarchy"}}}}
}

测试path_hierarchy分词

POST filesystem/_analyze
{"tokenizer": "path_hierarchy","text": "/home/elasticsearch/image"
}

返回:

{"tokens": [{"token": "/home","start_offset": 0,"end_offset": 5,"type": "word","position": 0},{"token": "/home/elasticsearch","start_offset": 0,"end_offset": 19,"type": "word","position": 0},{"token": "/home/elasticsearch/image","start_offset": 0,"end_offset": 25,"type": "word","position": 0}]
}

path_hierarchy tokenizer: 会把/a/b/c/d路径通过path_hierarchy 分词为 /a/b/c/d, /a/b/c, /a/b, /a


需求一: 查找一份,内容包括ES,在/workspace/workspace/projects/helloworld这个目录下的文件

手动指定字段类型,并模拟个数据到索引

#指定字段类型
PUT /filesystem/_mapping/file
{"properties": {"name": { "type":  "keyword"},"path": { "type":  "keyword","fields": {"tree": { "type":     "text","analyzer": "paths"}}}}
}#查看映射
GET /filesystem/_mapping#写入数据
PUT /filesystem/file/1
{"name":     "README.txt", "path":     "/workspace/projects/helloworld", "contents": "小工匠跟石杉老师学习ES"
}

需求DSL:


#文件搜索需求:查找一份,内容包括ES,在/workspace/workspace/projects/helloworld这个目录下的文件GET /filesystem/_search
{"query": {"bool": {"must": [{"match": {"contents": "ES"}}],"filter": {"term": {"path": "/workspace/projects/helloworld"}}}}
}

返回:

需求二: 搜索/workspace目录下,内容包含ES的所有的文件

再写几条数据进去

PUT /filesystem/file/2
{"name":     "README.txt", "path":     "/workspace/projects", "contents": "小工匠跟石杉老师学习ES"
}PUT /filesystem/file/3
{"name":     "README.txt", "path":     "/workspace/xxxxx", "contents": "小工匠跟石杉老师学习ES"
}PUT /filesystem/file/4
{"name":     "README.txt", "path":     "/home/artisan", "contents": "小工匠跟石杉老师学习ES"
}PUT /filesystem/file/5
{"name":     "README.txt", "path":     "/workspace", "contents": "小工匠跟石杉老师学习ES"
}

需求DSL: "path.tree": "/workspace"

GET filesystem/_search
{"query": {"bool": {"must": [{"match": {"contents": "ES"}}],"filter": {"term": {"path.tree": "/workspace"}}}}
}

返回:

{"took": 8,"timed_out": false,"_shards": {"total": 5,"successful": 5,"skipped": 0,"failed": 0},"hits": {"total": 4,"max_score": 0.2876821,"hits": [{"_index": "filesystem","_type": "file","_id": "5","_score": 0.2876821,"_source": {"name": "README.txt","path": "/workspace","contents": "小工匠跟石杉老师学习ES"}},{"_index": "filesystem","_type": "file","_id": "1","_score": 0.2876821,"_source": {"name": "README.txt","path": "/workspace/projects/helloworld","contents": "小工匠跟石杉老师学习ES"}},{"_index": "filesystem","_type": "file","_id": "3","_score": 0.2876821,"_source": {"name": "README.txt","path": "/workspace/xxxxx","contents": "小工匠跟石杉老师学习ES"}},{"_index": "filesystem","_type": "file","_id": "2","_score": 0.18232156,"_source": {"name": "README.txt","path": "/workspace/projects","contents": "小工匠跟石杉老师学习ES"}}]}
}

可以看到id=4的数据,不符合需求,没有被查询出来,OK。

白话Elasticsearch56-数据建模之 Path Hierarchy Tokenizer 对文件系统进行数据建模以及文件搜索相关推荐

  1. 附加 集合数据_浩辰3D软件新手教程:三维建模设计中如何重用CAD模型数据?

    在日常三维建模设计过程中,经常会遇到CAD模型数据的重复,那么如何重用CAD模型数据呢?下面小编就来给大家介绍一下在进行三维建模设计的过程中重用CAD模型数据的操作教程吧! 对CAD数据的重用,就如同 ...

  2. 数学建模matlab imread,《matlab数学建模方法与实践》第三章 数据的处理

    3.1数据的获取 3.1.1从Excel中读取数据 a= xlsread('路径',n(sheetn),'A(n-1):Bn(读入的数据范围)') 3.1.2从TXT中读取数据 3.1.2.1.1 同 ...

  3. 对数据仓库进行数据建模_确定是否可以对您的数据进行建模

    对数据仓库进行数据建模 Some data sets are just not meant to have the geospatial representation that can be clus ...

  4. 数据建模_浅谈数据仓库建设中的数据建模方法

    所谓水无定势,兵无常法.不同的行业,有不同行业的特点,因此,从业务角度看,其相应的数据模型是千差万别的.目前业界较为主流的是数据仓库厂商主要是 IBM 和 NCR,这两家公司的除了能够提供较为强大的数 ...

  5. 利用物联网+数据建模+数据可视化软件等工具,解决物联网大数据在行业中的应用与挑战

    随着物联网的发展和进步,所有可以想象到的东西和行业都变得更加智能,智能家居和智慧城市.智慧水利.智能交通.智能制造.互联汽车.互联健康等等.无数能够收集和交换数据的事物正在形成一个全新的网络--物联网 ...

  6. 元宇宙大数据人工智能三维电子沙盘数字沙盘元宇宙大数据人工智能无人机倾斜摄影三维全景建模第18课

    元宇宙大数据人工智能三维电子沙盘数字沙盘元宇宙大数据人工智能无人机倾斜摄影三维全景建模第18课 上一节我们实现了模型的移动控制.这次我们来实现模型的材质控制,首先我们找一个模型.在3dmax中如下: ...

  7. 数据与广告系列十五:商业兴趣标签建模XGboost调优实战

    作者·黄崇远 『数据虫巢』 全文共8210字 题图ssyer.com " 聊聊商业兴趣标签建模,顺带学习下kaggle竞赛神器,快哉." 01 前言 我们来回想下,早在第是一篇&l ...

  8. 《数学建模:基于R》——1.1 数据的描述性分析

    1.1 数据的描述性分析 在建立随机模型之前,首先要分析数据的主要特征,也就是数据的数字特征.这些特征通常是均值.方差,或者是数据服从什么分布.只有在确定了这些特征之后,才能建立起符合实际的模型. 本 ...

  9. 软件开发向大数据开发过渡_如果您是过渡到数据科学的开发人员,那么这里是您的最佳资源...

    软件开发向大数据开发过渡 by Cecelia Shao 邵Ce It seems like everyone wants to be a data scientist these days - fr ...

最新文章

  1. android中文首字母排序,Android上汉字按拼音排序如何实现?
  2. 1016. Phone Bills (25)
  3. 图像处理之添加高斯与泊松噪声
  4. iphone修改html样式,html – iphone在输入上覆盖我的所有样式[type =“submit”]
  5. 信息竞赛进阶指南--中缀表达式转后缀表达式并求值(模板)
  6. python类定义变量_python类变量与__init__声明变量的区别
  7. ewebeditor 路径
  8. 一个不到300行的C语言打飞机游戏
  9. c4d在运行时候显示计算机内存不足,打开c4d电脑电脑卡死怎么办
  10. 【盘点】最受欢迎十大中国风歌曲
  11. windows无法访问指定设备路径或文件
  12. nginx使用limit_req_zone限制ip访问频率
  13. 2020年,你必须掌握的前端技术栈
  14. java scriptrunner,java使用ScriptRunner执行sql文件
  15. 小博老师解析Java核心技术点 ——表单令牌(一)
  16. skynet 游戏服务器探索(1)--熟悉skynet(网络)
  17. 什么是机器学习(ML)
  18. 小白java环境变量配置
  19. Linux 目录文件与管理
  20. JAVA ECLIPSE安装

热门文章

  1. php中使用json做api,JSONAPI在PHP中的应用
  2. CMAKE_CURRENT_BINARY_DIR
  3. python find
  4. Bag of Words(BOW)模型
  5. R语言实战应用精讲50篇(二十九)-R语言算法应用案例:路径路网轨迹绘图分析(英国自行车数据库)
  6. MATLAB应用实战系列(七十七)-基于长时间序列栅格数据的MK检验
  7. 深度学习核心技术精讲100篇(八)-keras 实战系列之深度学习中的多任务学习(Multi-task learning)
  8. 电压越低采集的ad值反而变大_80多条关于AD转换设计的经验总结
  9. 4路组相连cache设计_移动图形处理器的纹理Cache设计
  10. sql server修改索引名称_索引基本知识和索引优化